[英]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.