何も表示されません。 私は移動しようとしました。ランダムなrand =新しいRandom()をループの外側に移動しましたが、まだ動作しません。 フレームが閉じても終了しません。Sierpinski Triangle:表示しない
public class myMain {
public static void main(String args[]) {
Frame frame = new Frame();
}
}
public class Frame extends JFrame {
public Frame(){
super("Fancy Triangle");
setSize(1024, 768);
myPanel panel = new myPanel();
add(panel);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
}
}
public class myPanel extends JPanel {
int x1 = 512;
int y1 = 109;
int x2 = 146;
int y2 = 654;
int x3 = 876;
int y3 = 654;
int x = 512;
int y = 382;
int dx, dy;
Random rand;
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
for (int i = 0; i < 50000; i++) {
g.drawLine(x, y, x, y);
try {
Thread.sleep(300);
} catch (InterruptedException e) {
e.printStackTrace();
}
rand = new Random();
int random = 1 + rand.nextInt(3);
if (random == 1) {
dx = x - x1;
dy = y - y1;
} else if (random == 2) {
dx = x - x2;
dy = y - y2;
} else {
dx = x - x3;
dy = y - y3;
}
x = x - (dx/2);
y = y - (dy/2);
}
}
}
なぜ 'paintComponent'の内部で' Thread.sleep'を呼びますか? – khelwood
無関係:Java命名規則についてお読みください。クラスはCamelCaseに行きますが、常に大文字で始まります。このような規則に違反すると、他人が入力を読みにくくなります。 – GhostCat