JFrame にテキスト ファイルとボタンを追加するには、Java コードを開発する必要があります。スレッドを使用して、JFrame のタイトル バーで 1 分ごとに時間を更新する必要があります。私は両方の操作を実行するためのコードを持っています (毎分の時間を更新し、テキスト ボックスの値を取得します) が、同じクラスに 2 つのスレッドを追加する方法がわかりません。
質問する
292 次
1 に答える
1
あなたが求めていることは、 で行うには危険なことですSwing
。 Swing
コンポーネントは(または Swing スレッドとも呼ばれます)thread-safe
から更新する必要はなく、更新する必要があります。これを行うために、. アイデアは、Swing 処理 (のタイトルを時間で更新するなど) を行うコードをセパレート内に配置し、それを に渡すことです。Event Dispatching Thread
EDT
Swing
SwingUtilities.invokeLater(Runnable)
EDT
JFrame
Runnable
invokeLater()
これを行うには、匿名の Runnable クラスを作成できます。
Runnable updateJFrame = new Runnable () {
public void run () {
myJFrame.setTitle("My New Title");
}
};
SwingUtilities.invokeLater(updateJFrame);
を使用invokeLater()
すると、更新後にコンポーネントが適切に更新/再描画されるようになります。(静的を使用しているときに見られる動作は、実際には更新/再描画の問題である可能性があります。) この話の教訓は、非 EDT スレッドで Swing コンポーネントを操作すると、すべての賭けがオフになるということです。
于 2013-01-18T07:47:47.240 に答える