Ny JFrame
Försöker göra en liten quiz, där jag vill att ett nytt fönster ska öppnas varje gång användaren svarar, men i min JTextArea ligger frågan från föregående fönster kvar när nästa öppnas, begriper inte hur jag ska göra. Och finns det något enkelt sätt att göra så att nya frågor öppnas i "samma" fönster?
Sedan undrar jag hur jag kan göra om jag vill att frågorna ska skrivas ut utan en textarea, alltså direkt i fönstret? Försökte med en JPanel, men fick inte till det så bra.
Här är programmet, och det är långt ifrån färdigt, och jag är ganska färsk, så ha överseende.
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Quiz extends JFrame
implements ActionListener
{
JButton ja;
JButton nej;
JButton avsluta;
JLabel label;
JTextArea txt;
public Quiz()
{
setTitle("Quiz");
setSize(300,300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
ja = new JButton("Ja");
nej = new JButton("Nej");
avsluta = new JButton("Avsluta");
label = new JLabel();
txt = new JTextArea(30,30);
ja.addActionListener(this);
nej.addActionListener(this);
avsluta.addActionListener(this);
Container c = getContentPane();
setLayout(new BorderLayout());
JPanel buttonPanel = new JPanel(new FlowLayout(FlowLayout.CENTER));
buttonPanel.add(ja);
buttonPanel.add(nej);
buttonPanel.add(avsluta);
add(buttonPanel, BorderLayout.SOUTH);
add(label);
add(txt, BorderLayout.CENTER);
JOptionPane.showMessageDialog(null, "VÄLKOMMEN!");
txt.append("Fråga 1");
setVisible(true);
}
public void actionPerformed(ActionEvent e)
{
if(ja == e.getSource()) {
JFrame frame2 = new JFrame("Quiz");
txt.append("Fråga 2");
JRadioButton ja = new JRadioButton("Ja");
frame2.setVisible(true);
frame2.setSize(200,200);
frame2.add(txt);
JPanel buttonPanel = new JPanel(new FlowLayout(FlowLayout.CENTER));
buttonPanel.add(ja);
buttonPanel.add(nej);
buttonPanel.add(avsluta);
frame2.add(buttonPanel, BorderLayout.SOUTH);
}
else if(nej == e.getSource()) {
txt.append("Du vann!!\n");
}
else
if (avsluta == e.getSource())
{
System.exit(0);
}
}
public static void main(String[] args) {
new Quiz();
}
}