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