我有以下結構交錯的paintComponent與以往的方法
JFrame frame = new JFrame("Sample");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(new CanvasBoard(tree));
frame.setSize(1200, 600);
frame.setVisible(true);
我有幾個System.out.println
在method1
... methodn
並在CanvasBoard
public void paintComponent(Graphics g)
。
我得到的消息交錯,我該如何解決?
確保UI的創建和修改只能從事件指派線程的上下文中。看看[併發中的Swing](http://docs.oracle.com/javase/tutorial/uiswing/concurrency/)和[初始線程](http://docs.oracle.com/javase/tutorial/uiswing /concurrency/initial.html)更多詳細信息 – MadProgrammer
讓我更好地理解:先調用_method1_,然後調用_method2_,然後調用_method3_,直到_methodn_。然後你調用_methodx_。那就對了? –
是的,雖然這些方法是按順序調用的,但方法x消息與來自先前方法的消息交織在一起。 – yonutix