「深刻な」Java GUIアプリケーションでは、多くのGUI要素の後ろにモデルがあります。たとえば、の場合、JEditorPane
、またはListModel
の場合はJList
です。Swingワーカースレッドの外でモデルを変更することはできますか?
私たちは、常にSwingワーカースレッドの外からGUIを変更しないように指示しており、そのためにはSwingUtilities.invoke...()
が与えられています。まあ、私はそれで生きることができます! GUIコンポーネントの属性を直接変更する場合は、確かに必要です(うまく機能します)。
理想的には、GUIで表示される変更のほとんどはJComponentsではなくモデルになります。しかし、GUIで表示可能なので、GUIの変更に応じて「数えますか」?私。イベントを変更してリスナーが必要なデカップリングを提供するか、またはモデルの変更をinvoke...()
にラップする必要がありますか?
おそらく、スイングプロの古い帽子ですが、私は明確に何らかの言及を見つけることができませんでした。
-1:私が聞きたい答えではありません! (ちょうど冗談、+1)ありがとう! –
スウィングスレッドに関するデバッグの問題については、このリンクをお勧めします: http://weblogs.java.net/blog/alexfromsun/archive/2006/02/debugging_swing.html CheckThreadViolationRepaintManagerは私に多くの時間を節約しました。 –
テキストをスイングすると、イベントがEDTにシフトされます。もちろん、それはちょうど大きな混乱を作ります。 –