paintComponent方法中的所有内容都在EDT上运行吗?

时间:2014-03-17 08:02:28

标签: java swing event-dispatch-thread

如果我创建了一个自定义JPanel(我正在制作的所有游戏将显示在屏幕上),并为此目的覆盖它paintComponent()。该方法中的所有内容都将在EDT上运行吗?那同一个类里面的其他方法呢?

如果我从我制作的主题的repaint()方法中调用自定义JPanel上的run()怎么办? paintComponent()还会在EDT上运行吗?

1 个答案:

答案 0 :(得分:2)

是的,该方法中的所有内容都将在EDT 上运行,包括您在paintComponent()内调用的任何方法。

那同一个类里面的其他方法呢?

如果他们是从paintComponent()actionPerformed()等打来的,那么他们也会在美国东部时间!

如果我从我制作的线程的run()方法内部调用自定义JPanel上的repaint()怎么办? paintComponent()是否仍然在EDT上运行?

非EDT线程上的

repaint()将安排重新绘制 - > paintComponent()将在EDT上运行。是的,仍然在美国东部时间!顺便说一句,您可以通过在paintComponent方法中放置一个断点并查看哪个线程被暂停来测试这一点。