Hallo ich soll ein kleines Programm schreiben, was in einem Jpanel so ne Art Schalter hat ( rot grünes Oval ), der jede Sekunde umspringt. Allerdings sehe ich kein Oval in meinem Frame...
Meine beiden Klassen :
und
Meine beiden Klassen :
Code:
import java.awt.Container;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JFrame;
public class Switch extends JFrame{
SwitchPanel light;
public Switch(){
setTitle("Schalter");
setSize(320, 160);
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
this.light = new SwitchPanel();
Container contentPane = getContentPane();
contentPane.add(light);
//light.run();
//this.add(light);
}
/**
* @param args
*/
public static void main(String[] args) {
Switch schalter = new Switch();
schalter.setVisible(true);
schalter.light.run();
// TODO Auto-generated method stub
}
}
Code:
package abgabe1;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import javax.swing.JPanel;
public class SwitchPanel extends JPanel implements Runnable{
Boolean on;
Graphics2D gr;
Color color;
public SwitchPanel(){
on = false;
color = Color.RED;
this.repaint();
}
public void paintComponent(Graphics g) {
g.setColor(color);
g.fillOval(304,304, 304, 304);
super.paintComponent(g);
}
@Override
public void run() {
while(true){
if (on==false){
color = Color.green;
on=true;
this.repaint();
} else {
color = Color.red;
on=false;
this.repaint();
}
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
// TODO Auto-generated method stub
}
}