webForumDet fria alternativet

Frågespel

4 svar · 636 visningar · startad av hottentott

hottentottMedlem sedan jan. 20072 inlägg
#1

Jag håller på att göra ett frågespel men jag får dessa felmedelanden:

"Fragespel.java:103: Cannot find symbol
symbol: Variable Fragespel
Location : Class Fragespel

Kan någon hjälpa mig!?

Det här är min kod: /** Spelet ***** ITKP1 *********************************
* Frågespel
*
* @author Thomas Grahn
* @version 1.0
*
* OBS! Detta spel innehåller äldre
* icke typbestämda datasamlingar!
*
*<adress>hottent0tt@msn.com</adress>
***********************************************************/
import java.util.*;
import java.text.*;
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;

public class Fragespel extends JFrame implements ActionListener {

private JPanel centerPanel, southPanel;
private JLabel centerLabel;
private JButton startaKnapp, avslutaKnapp;
private Container container;

public Fragespel () {
	super("Frågespel av Thomas");
	makePanel();
}

/**
* Skapar knappar, labels och paneler och container
* Här används addActionListener till att koppla knapparna till
* fönstrets händelslyssning
*/

private void makePanel() {

	setSize(300,400);
	Container container = getContentPane();

	centerPanel = new JPanel();
	centerPanel.setLayout(new GridLayout(1,1));
    centerLabel = new JLabel(new ImageIcon("Dimebag.gif"));
	centerPanel.add(centerLabel);
	centerPanel.setBackground(Color.white);

	container.add("Center", centerPanel);

	southPanel = new JPanel();
	southPanel.setLayout(new GridLayout(2,1));

	startaKnapp = new JButton("Spela");
	startaKnapp.setFont(new Font("SansSerif", Font.BOLD, 13));
	southPanel.add(startaKnapp);

	avslutaKnapp = new JButton("avsluta");
	avslutaKnapp.setFont(new Font("SansSerif", Font.BOLD, 13));
	southPanel.add(avslutaKnapp);

	container.add("South", southPanel);

	startaKnapp.addActionListener(this);
	avslutaKnapp.addActionListener(this);

	setVisible(true);

	setDefaultCloseOperation(EXIT_ON_CLOSE);

}

/**

    \* Definerar vad som ska hända om man trycker
\* på på Starta spel knappen och Avsluta spel knappen.
\*/

public void actionPerformed(ActionEvent e) {
	if(e.getSource() == avslutaKnapp){
		System.exit(0);
	}
	else if(e.getSource() == startaKnapp) {
		visaFrågor f = new visaFrågor(this);//spel läggs in
		setVisible(false);
	}
}

/**
* Den här metoden visar resultatet efter spelets klarats.
* Går sedan tillbaka till början av spelet.
*/

public void avslutaSpel(int antalFr, int korrektSvar) {
	JOptionPane.showMessageDialog(null, "Du fick " + korrektSvar + " rätt av " + 

antalFr + " möjliga! men du ger väl inte upp?");
new Fragespel();
}

/**
* Kör spelet.
*/

public static void main(String\[\] args) {
Fragespel = new Fragespel();
}

}//Avslutar Fragespelet klassen.

/** Spelet (Frågor klassen) ***** ITKP1 *****************
* Zäng! Software´s Stockholm By Night: Quiz Edition
*
* Thomas
*<adress>Hottent0tt@msn.com</adress>
***********************************************************/

class Frågor {
private String fråga, svarEtt, svarTvå, svarX;
public static final int ETT = 1;
public static final int TVÅ = 2;
public static final int X = 3;

private int svar;

/**
* Konstruktor som skapar objekt.
*/

public Frågor(String fråga, String svarEtt, String svarX, String svarTvå, int svar){
	this.fråga = fråga;
	this.svarEtt = svarEtt;
	this.svarX = svarX;
	this.svarTvå = svarTvå;
	this.svar = svar;
}

public String getFrågor() {
	return fråga;
}

public String getSvarEtt() {
	return svarEtt;
}

public String getSvarTvå() {
	return svarTvå;
}

public String getSvarX() {
		return svarX;
}

public int getSvar() {
		return svar;
}

}//Avslutar Frågor klassen.

/** Spelet (visaFrågor klassen) ***** ITKP1 **************
*
*
* @Thomas
*<adress>Hottent0tt@msn.com</adress>
***********************************************************/

class visaFrågor extends JFrame implements ActionListener {

private	JPanel centerPanel, southPanel;
private JButton ettKnapp, tvåKnapp, xKnapp, avslutaKnapp;
private JLabel centerLabel;
private Vector frågor;
private Frågor visadFråga;
private int antalFr = 0;
private int korrektSvar = 0;
private Container container;
private SthlmByNight sthlm;

/**
* Konstruktor som ändrar själva "spel" fönstret.
*/

public visaFrågor(Fragespel frage ) {
	super("Lycka till!");
	this.frage = frage;
	makePanel();
	skapaFrågor();
	nyFråga();
}

/**
* Anropar SthlmByNight klassen och ger resultatet efter spelad omgång.
*/

private void avslutaSpel() {
	setVisible(false);
	frage.avslutaSpel(antalFr, korrektSvar);
}

/**
* Skapar spelets frågor i en vektor.
*/

private void skapaFrågor() {
	frågor = new Vector();
	frågor.add(new Frågor("Hur många medlemmar finns i bandet Slipknot?", "Det är 9", 

"Det är 5", "Det är 6",Frågor.TVÅ));
frågor.add(new Frågor("Vilken känd gitarrist spelade i Pantera?", "Zakk wylde",

"Dimebag", "Jimi Hendrix",Frågor.X));
frågor.add(new Frågor("vad hette Metallicas första studio album?", "Justice for

all", "Ride the lightning", "Kill em all", Frågor.X));
frågor.add(new Frågor("Vilken metal genre spelar bandet Suffocation?", "Power

metal", "Death metal", "Thrash Metal", Frågor.TVÅ));
frågor.add(new Frågor("Vilken av de här tidningarna är inte ett hårdrocks

magazin?", "Close up", "Kerrang", "Dagens nyheter", Frågor.TVÅ));
frågor.add(new Frågor("Vilket av dessa band är svenskt?", "The Haunted", "Dimmu

Borgir", "Carcass", Frågor.ETT));
frågor.add(new Frågor("Vilken metal genre använder sig utav sataniska lyric

teman", "Black Metal", "Heavy Metal", "Nu Metal", Frågor.X));
frågor.add(new Frågor("Vilket band sjöng ozzy osbourne i?", "Black Sabbath",

"Deep purple", "Led Zeppelin", Frågor.X));
frågor.add(new Frågor("Var äger den stora hårdrocks festivalen Wacken rum?",

"Danmark", "Tyskland", "England", Frågor.TVÅ));
frågor.add(new Frågor("När uppkom hårdrocken", "90 talet", "80 talet", "70

talet", Frågor.ETT));

}

/**
* Den här metoden ser till så att samma fråga visas två gånger och
* sen visar den svarsalternativen till knapparna.
*/

private void nyFråga() {
	if(frågor.isEmpty()) {
		avslutaSpel();
		return;
	}

	visadFråga = (Frågor) frågor.get(0);
	frågor.remove(0);
	centerLabel.setText(visadFråga.getFrågor());
	ettKnapp.setText("1 : " + visadFråga.getSvarEtt());
	tvåKnapp.setText("2 : " + visadFråga.getSvarTvå());
	xKnapp.setText("X : " + visadFråga.getSvarX());

}

/**

* Skapar knappar, labels och paneler och container
* Här används addActionListener till att koppla knapparna till
* fönstrets händelslyssning
*/

private void makePanel() {
	setSize(900,275);
	Container container = getContentPane();

	centerPanel = new JPanel();
	centerPanel.setLayout(new GridLayout(1,1));
	centerLabel = new JLabel("Fråga", JLabel.CENTER);
	centerPanel.add(centerLabel);
	centerPanel.setBackground(Color.black);
	centerLabel.setForeground(Color.white);
	centerLabel.setFont(new Font("SansSerif", Font.BOLD, 14));
	container.add("Center", centerPanel);

	southPanel = new JPanel();
	southPanel.setLayout(new GridLayout(4,1));

	ettKnapp = new JButton("1");
	ettKnapp.setFont(new Font("SansSerif", Font.BOLD, 13));

	tvåKnapp = new JButton("2");
	tvåKnapp.setFont(new Font("SansSerif", Font.BOLD, 13));

	xKnapp = new JButton("X");
	xKnapp.setFont(new Font("SansSerif", Font.BOLD, 13));

	avslutaKnapp = new JButton("Avsluta spel");
	avslutaKnapp.setFont(new Font("SansSerif", Font.BOLD, 13));

	southPanel.add(ettKnapp);
	southPanel.add(xKnapp);
	southPanel.add(tvåKnapp);

	southPanel.add(avslutaKnapp);
	container.add("South", southPanel);

	ettKnapp.addActionListener(this);
	xKnapp.addActionListener(this);
	tvåKnapp.addActionListener(this);
	avslutaKnapp.addActionListener(this);

	setVisible(true);

	setDefaultCloseOperation(EXIT_ON_CLOSE);
}

/**
* Definierar vad som ska hända om man trycker på
* en specifik knapp Här räknas även antal frågor
* och rätta svar.
*/

public void actionPerformed(ActionEvent e) {

	if(e.getSource() == avslutaKnapp) {
		System.exit(0);
	}
	int svarsKnapp;
	if(e.getSource() == ettKnapp) {
		svarsKnapp = Frågor.ETT;
	}
	else if(e.getSource() == tvåKnapp) {
		svarsKnapp = Frågor.TVÅ;
	}
	else if(e.getSource() == xKnapp) {
			svarsKnapp = Frågor.X;
	}
	else {
		return;
	}
	if(svarsKnapp == visadFråga.getSvar()) {
		korrektSvar++;
	}
	antalFr++;
	nyFråga();

    }

}//Avslutar visaFrågor klassen

The_HulkMedlem sedan juni 20031 837 inlägg
#2

lägg gärna koden inom kod-taggen, då får man med eventuell indentering.

jag skulle inte använt åäö i klass och variabelnamn.

class Frågor {
private String fråga, svarEtt, svarTvå, svarX;
public static final int ETT = 1;
public static final int TVÅ = 2;
public static final int X = 3;
antilizaerMedlem sedan apr. 200357 inlägg
#3

Kolla din main metod...

hottentottMedlem sedan jan. 20072 inlägg
#4

vad?

Vad är det för fel på min main metod!?

MVH

Thomas

The_HulkMedlem sedan juni 20031 837 inlägg
#5

Du försöker skapa ett nytt objekt av typen Fragespel men din tilldelning ser konstig ut. du har inte med något variabelnamn.

public static void main(String[] args) {
Fragespel = new Fragespel();
}

testa detta istället.

public static void main(String[] args) {
Fragespel fspel= new Fragespel();
}

Har du även städat bort åäö bland alla variabler, metoder m.m.?

tänk även på att när du visar kod så lägg det inom kod-taggen
[ kod ] kod kod kod [ / kod ]

fast utan mellanrum mellan [ och ]

130 ms totalt · 3 externa anrop · v20260731065814-full.0e50b1ef
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)