如果我创建了一个自定义JPanel
(我正在制作的所有游戏将显示在屏幕上),并为此目的覆盖它paintComponent()
。该方法中的所有内容都将在EDT上运行吗?那同一个类里面的其他方法呢?
如果我从我制作的主题的repaint()
方法中调用自定义JPanel上的run()
怎么办? paintComponent()
还会在EDT上运行吗?
答案 0 :(得分:2)
是的,该方法中的所有内容都将在EDT 上运行,包括您在paintComponent()
内调用的任何方法。
那同一个类里面的其他方法呢?
如果他们是从paintComponent()
或actionPerformed()
等打来的,那么他们也会在美国东部时间!
如果我从我制作的线程的run()方法内部调用自定义JPanel上的repaint()怎么办? paintComponent()是否仍然在EDT上运行?
非EDT线程上的 repaint()
将安排重新绘制 - > paintComponent()
将在EDT上运行。是的,仍然在美国东部时间!顺便说一句,您可以通过在paintComponent
方法中放置一个断点并查看哪个线程被暂停来测试这一点。