witam
mam trzy klasy do rysowania (kurs http://javastart.pl/ )
import javax.swing.JFrame;
import javax.swing.JPanel;
public class MyFrame extends JFrame {
public MyFrame() {
super("Rysowanie");
JPanel panel = new MyPanel();
add(panel);
pack();
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
}
import java.awt.EventQueue;
public class Test {
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
new MyFrame();
}
});
}
}
import java.awt.*;
import java.awt.geom.*;
import javax.swing.JPanel;
public class MyPanel extends JPanel {
public MyPanel() {
setPreferredSize(new Dimension(400, 400));
}
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2d = (Graphics2D) g;
// prostokat
int licznik = 0;
//Czytaj więcej na: http://javastart.pl/podstawy-jezyka/tablice-wielowymiarowe/#ixzz2R7BsyofG
while (licznik<10) {
licznik ++;
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Rectangle2D rectangle = new Rectangle2D.Double(licznik, 4, 10, 10);
g2d.draw(rectangle);
// kolo
// Ellipse2D circle = new Ellipse2D.Double(10, 10, 380, 380);
// g2d.draw(circle);
}
}
}
jak zmodyfikować ten kod, aby program rysował na bieżąco? teraz okienko wyświetla efekt swojej pracy dopiero po wykonaniu całej pętli while, a chciałbym aby robił to na bieżąco. jak uzyskać taki efekt?