永发信息网

Graphics 与线程问题

答案:2  悬赏:60  手机版
解决时间 2021-02-10 14:36
  • 提问者网友:活着好累
  • 2021-02-10 00:44
import javax.swing.*;
import java.awt.*;

public class CanvasTest
{
JFrame frame = new JFrame();
Canvas canvas = new Canvas();
void CanvasTest()
{
frame.setBounds(100, 100, 300, 200);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
canvas.setBounds(0, 0, 200, 100);
frame.getContentPane().setLayout(null);
frame.getContentPane().add(canvas);
frame.setVisible(true);
}
void repaint()
{
Graphics g = canvas.getGraphics();
g.setColor(Color.BLACK);
g.fillRect(0, 0, 100, 100);
}
public static void main(String[] args) throws InterruptedException
{
CanvasTest test = new CanvasTest();
Thread.currentThread().sleep(2000);/??????????
test.repaint();
}
}
如果不让线程暂停地话 画上地图形就只会闪烁一次 而不会停留在上面那?
最佳答案
  • 五星知识达人网友:夜余生
  • 2021-02-10 02:06
不是线程的问题 你可以加点代码测试一下
在repaint里加这段
Thread.sleep(1000);
g.clearRect(0, 0, 100, 100);

在main里加
for (int i=1; i<10; i++) {
Thread.sleep(2000);
test.repaint();
}

你的意思大概是想说失去焦点后 画出来的图形就消失了吧? 这个是图形闪烁的问题 解决方法搜索下 网上有
全部回答
  • 1楼网友:不甚了了
  • 2021-02-10 03:19

是不是key值是为0呀。。

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯