繁体   English   中英

用Swing进行线程化

[英]Threading with Swing

基本上,我有一个程序,它有一个类来创建一个基本的GUI,另一个类扩展了Canvas 这个Canvas类以通常的方式myPanel.add(object)添加到JPanel中。 现在,在这个类中,我想要有方法来移动矩形等对象。

我的问题是这些; 有没有办法基本上让这个JPanel或其添加的对象(myCanvas)在一个单独的线程上运行?

另外,在以下方法中:

public void paint(Graphics g){
    g.setColor(Color.black);
    g.drawRect(0, 0, 50, 50);
}

有没有办法将这些操作分成多个方法? 即绘制到Canvas的多种方法?

提前致谢。

在某处存储可绘制对象的列表(可能是您的Canvas类,但我建议您在逻辑外部...)并使用其他线程更新此对象列表。

您的绘图循环可以简单地清除您的画布(或至少需要重绘的区域)并绘制它们。 理想情况下,您的屏幕渲染应该足够快,以便于完成重绘,根据需要缓存子部分。

不要使用Canvas是一个Swing应用程序。 使用JPanel或JComponent并覆盖paintComponent()方法。 另外,不要忘记方法开头的super.paintComponent(g)。

有关更多信息,请参阅有关执行自定义绘画的Swing教程中的部分。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM