Hallo,
ich bin noch rellativ neu in java und habe eine Frage bezüglich der GUI. Ich habe eine GUI erstellt und jetzt möchte ich den Fensterinhalt mit neuen Variableninhalt neu laden:
erstmal die beiden Klassen:
Jetzt hab ich 1 Problem und eine Frage: Das Problem:
Bei der Ausgabe der GUI wird die Variable fragegui nicht überschieben.
Die Frage: Ich möchte grundsätzlich, dass ich mit der Random Klasse eine zufallszahl im Bereich von 1 und 22 erzeuge. Diese Variable soll die Keyvalue der ersten Frage sein, danach sollen die 7 folgenden Fragen die insgesammt 8 Fragen des Quizes sein. Und jetzt ist nur die Frage, wie ich das mache, dass der Fensterinhalt mit den neuen Werten neu geladen wird.
ich bin noch rellativ neu in java und habe eine Frage bezüglich der GUI. Ich habe eine GUI erstellt und jetzt möchte ich den Fensterinhalt mit neuen Variableninhalt neu laden:
erstmal die beiden Klassen:
Java:
package testGUI;
import javax.swing.*;
import java.awt.Event;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Random;
import java.util.HashMap;
import java.util.Map;
public class Question extends JFrame implements ActionListener {
// Fragen und Antworten
Map<Integer, String> question = new HashMap<Integer, String>();
Map<Integer, String> answer = new HashMap<Integer, String>();
Random r = new Random();
int nummerfrage = r.nextInt(26) + 1;
int punkte = 0;
int anzahlfrage = 1;
String fragegui = "Hier sollte die Frage stehen ...";
public void frageneinlesen() {
//30 Fragen mit answer.put(laufendeNummer,"Frage");
}
public void antworteneinlesen() {
//30 Antworten mit answer.put(laufendeNummer,"Antwort");
}
public void frage_finden() {
for (Map.Entry<Integer, String> entry : answer.entrySet()) {
if (entry.getKey() == nummerfrage) {
fragegui = entry.getValue();
}
}
}
JPanel cp;
JLabel anzahlfragen = new JLabel("Frage: " + anzahlfrage + "/8");
JLabel anzahlpunkte = new JLabel("Punkte: " + punkte + "/8");
JLabel frageLabel = new JLabel(fragegui);
JLabel antwortLabel = new JLabel("Antwort:");
JTextField antwortfeld = new JTextField();
JButton continueButton = new JButton("Weiter");
JButton exitButton = new JButton("Beenden");
public void initGUI() {
JPanel p = (JPanel) this.getContentPane();
p.setLayout(null);
frageLabel.setBounds(20, 5, 550, 30);
p.add(frageLabel);
antwortLabel.setBounds(20, 50, 110, 30);
p.add(antwortLabel);
antwortfeld.setBounds(90, 50, 400, 30);
p.add(antwortfeld);
anzahlfragen.setBounds(20, 75, 100, 50);
p.add(anzahlfragen);
anzahlpunkte.setBounds(150, 75, 100, 50);
p.add(anzahlpunkte);
continueButton.setBounds(20, 130, 110, 20);
p.add(continueButton);
exitButton.setBounds(450, 130, 110, 20);
p.add(exitButton);
continueButton.addActionListener(this);
exitButton.addActionListener(this);
}
public Question() {
int random = 1;
frageneinlesen();
antworteneinlesen();
frage_finden();
this.setTitle("Test der Allgemeinbildung");
this.setSize(600, 200);
initGUI();
}
@Override
public void actionPerformed(ActionEvent event) {
Object source = event.getSource();
if (source == continueButton) {
String antwort = "";
for (Map.Entry<Integer, String> entry : answer.entrySet()) {
if (entry.getKey() == nummerfrage) {
antwort = entry.getValue();
}
if (antwortfeld.getText().contains(antwort))
punkte++;
}
}
if (source == exitButton) {
// beenden
System.exit(0);
}
}
}
Java:
package testGUI;
import testGUI.Question;
public class Run_Question {
public static void main(String[] args) {
//erste Idee/Test mit festen Größen
int anzahlfrage = 9;
for (int i = 5; i < 10; i++){
Question fragebogen = new Question();
fragebogen.setLocation(400, 300);
fragebogen.setVisible(true);
}
}
}
Jetzt hab ich 1 Problem und eine Frage: Das Problem:
Java:
public Question() {
int random = 1;
frageneinlesen();
antworteneinlesen();
frage_finden();
this.setTitle("Test der Allgemeinbildung");
this.setSize(600, 200);
initGUI();
}
Die Frage: Ich möchte grundsätzlich, dass ich mit der Random Klasse eine zufallszahl im Bereich von 1 und 22 erzeuge. Diese Variable soll die Keyvalue der ersten Frage sein, danach sollen die 7 folgenden Fragen die insgesammt 8 Fragen des Quizes sein. Und jetzt ist nur die Frage, wie ich das mache, dass der Fensterinhalt mit den neuen Werten neu geladen wird.