我有一个Java应用程序,流原始数据并绘制相应的实时绘图。这是通过调用我写的使用Graphics对象的类的方法来处理的。我在重写的paintComponent方法中实现了算法,以生成最新数据的所有图。我在我的类中有其他方法来更新paintComponent方法中绘制图形所使用的变量。多线程的Java图形
在我的主类中,我定期更新我的图形定时器事件处理程序。在事件处理程序中,我调用更新某些变量的图表类中的方法,进行一些计算,然后调用repaint()(显然是调用paintComponent方法的正确方法)。
我的问题是,我在paintComponent方法中使用的算法可能需要(相对)很长时间才能完成,具体取决于我的图的数量和分辨率。 (我还没有完全遇到这个问题,但我试图解决它现在)。当然,我不希望所有这些图形都占用我应用程序的所有处理时间,所以我想知道是否可以在单独的线程中执行“paintComponent”。
如果我在我的主要创建一个子类运行在一个单独的线程,并简单地称为我描述的图形方法会发生什么?会自动使所有这些方法(包括paintComponent)在新线程中执行?或者我会不得不修改我的图形类本身为此工作?理想情况下,我想避免修改我的图表类,因为我已经将它设计为在NetBeans GUI构建器中作为JPanel工作,并且我想避免打破该功能。
对,输出到GUI的输出很大+1 – mKorbel
是的,这是我探索的第一个选项,但我实际上并不喜欢数据的显示方式。我的课程是专门为示波器输出建模而设计的,并且已按照我想要的方式工作。 – Ben