M
mr bond345
Gast
Hallo zusammen!
Aufgabe ist: Ein Fenster immer von rot auf grün zu wechseln. Es gibt einen roten button und einen grünen. Wenn man richtig drückt, dann soll gezählt werden, wenn man falsch drückt und wenn man das drücken verpasst.
Schaut mal in Zeile 60, eigentlich müsste das ja funktionierte? Aber wenn ich das Programm im eclipse ausführe, dann passiert nix, es kommt nicht mal das Fenster.
Jedoch, wenn ich die if-anweisung(ohne der while) in den timer_actionlistener reinmachen, dann funktioniert alles.
Warum bitte funktioniert die while hier nicht? Hab ich zu viel in C gedacht?
mfg bond
Aufgabe ist: Ein Fenster immer von rot auf grün zu wechseln. Es gibt einen roten button und einen grünen. Wenn man richtig drückt, dann soll gezählt werden, wenn man falsch drückt und wenn man das drücken verpasst.
Schaut mal in Zeile 60, eigentlich müsste das ja funktionierte? Aber wenn ich das Programm im eclipse ausführe, dann passiert nix, es kommt nicht mal das Fenster.
Jedoch, wenn ich die if-anweisung(ohne der while) in den timer_actionlistener reinmachen, dann funktioniert alles.
Warum bitte funktioniert die while hier nicht? Hab ich zu viel in C gedacht?
mfg bond
Java:
package Reaktionstester;
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class MainFrame extends JFrame {
private JPanel contentPane;
private JButton button_red;
private JButton button_green;
private Timer timer1;
private JPanel panel1;
private int zaehler_false = 0;
private int zaehler_verpasst = 0;
private int zaehler_richtig = 0;
private int zaehler_widh = 0;
public MainFrame() {
try {
setDefaultCloseOperation(EXIT_ON_CLOSE);
FrameInit();
}
catch (Exception exception) {
exception.printStackTrace();
}
}
/**
* Component initialization.
*
* @throws java.lang.Exception
*/
private void FrameInit() throws Exception {
contentPane = (JPanel) getContentPane();
contentPane.setLayout(new BorderLayout());
setSize(new Dimension(400, 300));
setTitle("Frame Title");
panel1 = new JPanel();
panel1.setLayout(new FlowLayout());
panel1.setBackground(Color.RED);
button_red = new JButton("red");
button_red.setBackground(Color.RED);
button_red.addActionListener(new ButtonRed_ActionListener());
button_green = new JButton("green");
button_green.setBackground(Color.GREEN);
button_green.addActionListener(new ButtonGreen_ActionListener());
panel1.add(button_red, BorderLayout.CENTER);
panel1.add(button_green, BorderLayout.CENTER);
contentPane.add(panel1, BorderLayout.CENTER);
timer1 = new Timer(500, new timer1_ActionListener());
timer1.start();
while(timer1.isRunning() == true)
{
if(zaehler_widh == 20)
{
timer1.stop();
System.out.println("Falsch:" + zaehler_false);
System.out.println("Richtig:" + zaehler_richtig);
System.out.println("Verpasst:" + zaehler_verpasst);
}
}
}
private class ButtonRed_ActionListener implements ActionListener {
public void actionPerformed(ActionEvent ae) {
if(panel1.getBackground() == Color.green)
{
zaehler_false++;
}
else
{
zaehler_richtig++;
}
}
}
private class ButtonGreen_ActionListener implements ActionListener {
public void actionPerformed(ActionEvent ae) {
if(panel1.getBackground() == Color.red)
{
zaehler_false++;
}
else
{
zaehler_richtig++;
}
}
}
private class timer1_ActionListener implements ActionListener {
public void actionPerformed(ActionEvent ae) {
if(panel1.getBackground() == Color.GREEN)
{
panel1.setBackground(Color.RED);
}
else
{
panel1.setBackground(Color.GREEN);
}
zaehler_widh++;
}
}
}