G
gmx777
Gast
Hallo,
ich moechte einen Rechteck uebermalen. In einer Schleife will ich erst einen Rechteck zeichnen mit roter Farbe, dann eine Zeitverzoegerung einbauen und nach Ablauf der Zeit an selber Stelle soll ein Rechteck mit gleicher Groesse aber in blauer Farbe gezeichnet werden, dann wieder eine Zeitverzoegerung und dann soll die Schleife wieder den Vorgang wiederholen.
Ich habe es so probiert:
[JAVA=1]
import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import javax.swing.JPanel;
public class Rechteck1 extends JPanel{
private static final long serialVersionUID = 1L;
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D grafik2=(Graphics2D)g;
for(int i=0; i<40; i++){
try {
grafik2.setStroke(new BasicStroke(5));
g.setColor(Color.red);
g.drawRect(10, 10, 100, 100);
Thread.sleep(1000);
}
catch (InterruptedException e) {
e.printStackTrace();
}
try {
g.setColor(Color.blue);
g.drawRect(10, 10, 100, 100);
Thread.sleep(1000);
}
catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
[/code]
Leider geht es nicht. Erst wird ein leerer und durchsichtiger Rahmen angezeigt und dann das blaue Rechteck gewuenschter Effekt fehlt. Noch besser waere es mit einem Timer zu realesieren, leider fehlt mir das noetige Wissen dazu. Kann mir bitte jemand helfen?
ich moechte einen Rechteck uebermalen. In einer Schleife will ich erst einen Rechteck zeichnen mit roter Farbe, dann eine Zeitverzoegerung einbauen und nach Ablauf der Zeit an selber Stelle soll ein Rechteck mit gleicher Groesse aber in blauer Farbe gezeichnet werden, dann wieder eine Zeitverzoegerung und dann soll die Schleife wieder den Vorgang wiederholen.
Ich habe es so probiert:
[JAVA=1]
import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import javax.swing.JPanel;
public class Rechteck1 extends JPanel{
private static final long serialVersionUID = 1L;
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D grafik2=(Graphics2D)g;
for(int i=0; i<40; i++){
try {
grafik2.setStroke(new BasicStroke(5));
g.setColor(Color.red);
g.drawRect(10, 10, 100, 100);
Thread.sleep(1000);
}
catch (InterruptedException e) {
e.printStackTrace();
}
try {
g.setColor(Color.blue);
g.drawRect(10, 10, 100, 100);
Thread.sleep(1000);
}
catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
[/code]
Leider geht es nicht. Erst wird ein leerer und durchsichtiger Rahmen angezeigt und dann das blaue Rechteck gewuenschter Effekt fehlt. Noch besser waere es mit einem Timer zu realesieren, leider fehlt mir das noetige Wissen dazu. Kann mir bitte jemand helfen?