私は本当に正しく質問したかどうか確信が持てません...そして、私が質問を適切に表現したかどうかさえわかりません..だから、前もってお詫び申し上げます...しかし、私はかなり立ち往生していますこの問題について、すべての助けに感謝します..さらに、私は率直に言って専門家ではないので...優しくしてください、私は馬鹿になろうとしているわけではありません.
だから、率直に言って、私のプログラムのポイントは、ライフラインを持つテレビの特定のゲーム番組に基づいた単純なゲームです..この特定のものは「友人に電話する」ものです.ボタン」 (実際にはJPanel
を持つMouseListener
)。このボタンが押されたら、アニメーション GIF (カウントダウンの) を描画し、30 秒が経過するまで他の sをロックするために機能するものは何でも、JLabel
またはJPanel
を追加してペイントしたいと思います。参考までに、私は現在使用していません...JFrame
Component
LayoutManager
私がこれをやろうとしてきた方法は次のとおりです。
ImageIcon CountdownImg = new ImageIcon("countdown.gif");
JLabel CountdownLbl = new JLabel(CountdownImg);
this.getContentPane().add(CountdownLbl);
CountdownLbl.setLocation(200, 200);
CountdownLbl.setSize(new Dimension(CountdownImg.getIconWidth(), CountdownImg.getIconHeight()));
long startTime = System.currentTimeMillis();
while(System.currentTimeMillis() < startTime + 30000) {
;
}
while
ループに問題があることはわかっています。ループがなければ、画像は正常にレンダリングされます。これにより、Java は条件が満たされるまでレンダリングを待機しますCountdownLbl
。また、画像を含むコンテンツ ペインを使用して別のものを作成しようとしましJFrame
たが (おそらく、私自身の誤解または不十分なスレッドが原因で..)、Frame は単に表示され、そのコンテンツをレンダリングしません。実行中にスレッドがあることに気付くことがありImage Fetcher
ます。非常に悪いループがこのスレッドに干渉している可能性があり、このスレッドが画像のレンダリングを担当していると思います。
だから私は質問があるべきだと思います...どうすればこれを実際に実装できますか...スレッドセーフな方法で? それが正しい場合は?
あなたの時間、忍耐と努力に感謝します。