【发布时间】:2014-05-18 18:58:46
【问题描述】:
我必须在 Java 中绘制一些椭圆,然后单击更改它们的颜色。 一开始我尝试在 20 毫秒后更改颜色,但它不起作用。
我的代码是:
public class MyComponentNew extends Frame {
public Graphics2D g2d;
public MyComponentNew(String title) {
super(title);
setSize(400, 550);
}
@Override
public void paint(Graphics g) {
this.g2d = (Graphics2D) g;
this.g2d.setColor(Color.red);
this.g2d.fillOval(10, 55, 50, 100);
}
public void changeColor () {
this.g2d.setColor(Color.blue);
this.g2d.fillOval(10, 55, 50, 100);
}
}
在我的主要方法的类中:
MyComponentNew m;
m = new MyComponentNew("Fereastra cu baloane");
m.setVisible(true);
m.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent we) {
System.exit(0);
}
});
try {
Thread.sleep(20);
} catch(InterruptedException e) {}
m.changeColor();
椭圆的颜色保持红色。
【问题讨论】:
-
你到底想点击什么?
-
椭圆形,但一开始我尝试在 20 毫秒后更改椭圆形的颜色
-
@Cristina 如果你用 Focus Listener 试过这个,请在 cmets 中告诉我。我正在尝试使用 Focus Listener 更改形状的颜色。
标签: java awt paint thread-sleep