---
title: "Frågespel"
type: "forum-thread"
url: "https://www.webforum.nu/amne/java/156085-frågespel"
topic: "Java"
topic_url: "https://www.webforum.nu/amne/java"
author: "hottentott"
published: "2007-01-17T23:26:17.000Z"
updated: "2007-01-23T07:35:08.000Z"
replies: 4
views: 643
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/java/156085-frågespel"
---

# Frågespel

## #1 — hottentott, 2007-01-17T23:26Z

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

Permalänk: https://www.webforum.nu/p/156085

## #2 — The_Hulk, 2007-01-18T07:16Z

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;
```

Permalänk: https://www.webforum.nu/p/1924593

## #3 — antilizaer, 2007-01-18T17:34Z

Kolla din main metod...

Permalänk: https://www.webforum.nu/p/1924754

## #4 — hottentott, 2007-01-22T19:44Z

vad?

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

MVH 

Thomas

Permalänk: https://www.webforum.nu/p/1925676

## #5 — The_Hulk, 2007-01-23T07:35Z

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 \]

Permalänk: https://www.webforum.nu/p/1925770

---

Tråden på webben: https://www.webforum.nu/amne/java/156085-frågespel
