Hallo,
ich hab mir schon ein paar Threads zum Thema CardLayout durchgelesen. Einiges konnte ich auch in mein Programm
einarbeiten, nur leider gibt es da noch ein paar Probleme.
Mein JFrame ist in mehrere Panels aufgeteilt und nach dem drücken auf den Knopf soll eine neue Frage erscheinen...
Ich bin noch am Anfang des Programmes und somit wollte ich es erstmal beim Knopfdruck die Frage ändern lassen.
Leider erscheint beim anwenden des CardLayouts auf mein FragenPanel der Text nicht mehr.
Hat vielleicht jemand von euch eine Lösung für mich parat? Geht es vielleicht auch ohne CardLayout?
Anbei mein bisheriger Code:
ich hab mir schon ein paar Threads zum Thema CardLayout durchgelesen. Einiges konnte ich auch in mein Programm
einarbeiten, nur leider gibt es da noch ein paar Probleme.
Mein JFrame ist in mehrere Panels aufgeteilt und nach dem drücken auf den Knopf soll eine neue Frage erscheinen...
Ich bin noch am Anfang des Programmes und somit wollte ich es erstmal beim Knopfdruck die Frage ändern lassen.
Leider erscheint beim anwenden des CardLayouts auf mein FragenPanel der Text nicht mehr.
Hat vielleicht jemand von euch eine Lösung für mich parat? Geht es vielleicht auch ohne CardLayout?
Anbei mein bisheriger Code:
Code:
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
public class radio extends JFrame {
// Variablen
private JPanel ueberschriftPanel, fragenPanel, fragenPanel1, antwortenPanel, knopfPanel, punktePanel, cards;
private JLabel ueberschriftText, fragenText, punkteText, fragenText1;
private JRadioButton antwort1, antwort2, antwort3, antwort4, antwort5;
private JButton beep;
radio()
{
super();
this.setTitle("Quiz");
this.setLayout(null);
// Überschrift
ueberschriftPanel = new JPanel();
ueberschriftPanel.setSize(90,50);
ueberschriftPanel.setLocation(270,10);
ueberschriftText = new JLabel("Das Quiz!");
ueberschriftPanel.add(ueberschriftText);
this.add(ueberschriftPanel);
// Fragen
fragenPanel = new JPanel();
fragenPanel.setSize(200,200);
fragenPanel.setLocation(20,100);
fragenText = new JLabel();
fragenText.setText("<html>Frage 1 von 25:
Was steht hinter dem Bus?</html>");
fragenPanel.add(fragenText);
fragenPanel1 = new JPanel();
fragenPanel1.setSize(200,200);
fragenPanel1.setLocation(20,100);
fragenText1 = new JLabel();
fragenText1.setText("<html>Frage 2 von 25:
Was steht vor dem Zug?</html>");
fragenPanel1.add(fragenText1);
cards = new JPanel(new CardLayout());
cards.add("a", fragenPanel);
cards.add("b", fragenPanel1);
fragenPanel.setBackground(new Color(24,24,244));
this.add(cards);
// Antworten
antwortenPanel = new JPanel();
antwortenPanel.setSize(380,200);
antwortenPanel.setLocation(230,100);
antwortenPanel.setLayout(new GridLayout(5,1));
antwort1 = new JRadioButton("Antwort die 1.!");
antwort2 = new JRadioButton("Antwort die 2.!");
antwort3 = new JRadioButton("Antwort die 3.!");
antwort4 = new JRadioButton("Antwort die 4.!");
antwort5 = new JRadioButton("Antwort die 5.!");
ButtonGroup antwortenGroup = new ButtonGroup();
antwortenGroup.add(antwort1);
antwortenGroup.add(antwort2);
antwortenGroup.add(antwort3);
antwortenGroup.add(antwort4);
antwortenGroup.add(antwort5);
antwortenPanel.add(antwort1);
antwortenPanel.add(antwort2);
antwortenPanel.add(antwort3);
antwortenPanel.add(antwort4);
antwortenPanel.add(antwort5);
this.add(antwortenPanel);
// Knöpfe
knopfPanel = new JPanel();
knopfPanel.setSize(150,50);
knopfPanel.setLocation(400,350);
beep = new JButton("weiter");
knopfPanel.add(beep);
this.add(knopfPanel);
// Punkte
punktePanel = new JPanel();
punktePanel.setSize(150,50);
punktePanel.setLocation(70,350);
punkteText = new JLabel("Deine Punkte: ");
punktePanel.add(punkteText);
this.add(punktePanel);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
beep.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
Object source = e.getSource();
if(source==beep){
((CardLayout)cards.getLayout()).show(cards, "b");
}
}});
}
public static void main(String[] args)
{
radio fenster = new radio();
fenster.setSize(640,480);
fenster.setLocation(350,200);
fenster.setVisible(true);
}
}