Ich bin gerade dabei mir ein Schere, Stein, Papier Spiel zu programmieren.
GUI Aufbau:
Es gibt 1 TextArea, 3 RadioButtons und 1 Button.
In der TextArea wird das Spielgeschehen ausgegeben (z.B. Spieler nimmt Stein, PC nimmt Schere!......*Schere, Stein, Papier*.....Spieler gewinnt!).
Die 3 RadioButtons dienen dazu, dass der Spieler entweder Schere, Stein oder Papier auswählt.
Wenn man dann auf den Button klickt, startet das Spiel.
Mein Problem ist, dass ich die 3 RadioButtons nicht unabhängig von einander gecodet bekomme.
Ich habe es zwar hinbekommen, dass ich nur eines der 3 RadioButtons gleichzeitig auswählen kann (Mithilfe von ButtonGroup). Wenn ich dann aber dem ButtonActionListener sage, dass er für jeden RadioButton einen anderen Text ausgeben soll, falls diese ausgewählt sind, dann klappt das nicht.
Ich bekomme, egal welchen RadioButton ich auswähle, immer alle 3 Textmöglichkeiten aufeinmal ausgegeben.
GUI Aufbau:
Es gibt 1 TextArea, 3 RadioButtons und 1 Button.
In der TextArea wird das Spielgeschehen ausgegeben (z.B. Spieler nimmt Stein, PC nimmt Schere!......*Schere, Stein, Papier*.....Spieler gewinnt!).
Die 3 RadioButtons dienen dazu, dass der Spieler entweder Schere, Stein oder Papier auswählt.
Wenn man dann auf den Button klickt, startet das Spiel.
Mein Problem ist, dass ich die 3 RadioButtons nicht unabhängig von einander gecodet bekomme.
Ich habe es zwar hinbekommen, dass ich nur eines der 3 RadioButtons gleichzeitig auswählen kann (Mithilfe von ButtonGroup). Wenn ich dann aber dem ButtonActionListener sage, dass er für jeden RadioButton einen anderen Text ausgeben soll, falls diese ausgewählt sind, dann klappt das nicht.
Ich bekomme, egal welchen RadioButton ich auswähle, immer alle 3 Textmöglichkeiten aufeinmal ausgegeben.
Java:
import java.awt.BorderLayout;
public class Schere extends JFrame {
private JPanel contentPane;
private JScrollPane scrollPane;
private JTextArea textArea;
private JRadioButton SchereRadioButton;
private JRadioButton SteinRadioButton;
private JRadioButton PapierRadioButton;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Schere frame = new Schere();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public Schere() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 547, 429);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
scrollPane = new JScrollPane();
scrollPane.setBounds(42, 28, 444, 221);
contentPane.add(scrollPane);
textArea = new JTextArea();
scrollPane.setViewportView(textArea);
SchereRadioButton = new JRadioButton("Schere");
SchereRadioButton.setBounds(42, 256, 109, 23);
contentPane.add(SchereRadioButton);
SteinRadioButton = new JRadioButton("Stein");
SteinRadioButton.setBounds(42, 282, 109, 23);
contentPane.add(SteinRadioButton);
PapierRadioButton = new JRadioButton("Papier");
PapierRadioButton.setBounds(42, 308, 109, 23);
contentPane.add(PapierRadioButton);
ButtonGroup group = new ButtonGroup();
group.add(SchereRadioButton);
group.add(SteinRadioButton);
group.add(PapierRadioButton);
JButton btnNewButton = new JButton("Los");
btnNewButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
if(SchereRadioButton.isEnabled()) {
textArea.append("Schere wurde ausgewählt");
}
if(SteinRadioButton.isEnabled()) {
textArea.append("Stein wurde ausgewählt");
}
if(PapierRadioButton.isEnabled()) {
textArea.append("Papier wurde ausgewählt");
}
}
});
btnNewButton.setBounds(42, 360, 89, 23);
contentPane.add(btnNewButton);
}
}