問題タブ [repaint]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - JTree はリアルタイムで更新されますか?
JTree を毎秒更新するためのスレッド化されたソリューションを探しています。
基本的に、私は...
- 外部ファイルのインポート
- それから列挙を作成する
- 列挙からツリーを構築する
外部ファイルはランダムに変更される可能性があり、ツリー内のデータはこの変更を適切なタイミングで表す必要があります。JTree が (パネル経由で) あるコンテンツ ペイン全体を再描画せずにツリーを再描画するにはどうすればよいでしょうか?
ありがとう!
java - サイズ変更時にフレームを再描画しますか?
repaint()
フレームを最大化またはサイズ変更した直後にフレームを強制するにはどうすればよいですか?
その特定の操作が行われるときにどのメソッドが呼び出されるのかわかりません。ペイントでグラフィックオブジェクトを使用して記述されたグラフィックがたくさんあり、その方向はからのリアルタイムフィードバックに依存しますが、最大化しgetWidth()
てgetHeight()
もペイントは呼び出されず、残念ながらそれらのピクセルが変更された場合にのみ呼び出されます。
safari - Safari 4 と Opera での sIFR.useStyleCheck の奇妙さ
そこで、sIFR (バージョン 3、リビジョン 436) を使用してナビゲーションの要素を置き換えていますが、すべてが美しいです。しかし、CSS の読み込みを検出するために sIFR.useStyleCheck をオンにすると、Safari 4 ですべてがおかしくなりました。正しい水平位置になかったり、本来あるべきときに折り返されなかったりするなどです。また、ブラウザ ウィンドウに水平スクロール バーが表示されますが、これは常に楽しいことです。しかし、ブラウザ ウィンドウのサイズを変更すると、すべてが再描画され、再び問題なく表示されます。
これが Firefox では起こらないことはわかっています。Opera に影響があるようです。Safari 3 ではまだテストしていません。Mark (Wubben) が sIFR.useStyleCheck は主に Safari と Opera でのパフォーマンスを改善するためのものだと言っているので、IE で起動するとどうなるかは神のみぞ知るところですが、実際には問題ないと思います。
助言がありますか?再描画を強制する方法を探しましたが、わかりませんでした。私がそうしたとしても、それは非常にエレガントなソリューションではありません。
java - Javaスイングリペイント()
(数時間後に 2 番目の質問)
ケイ、私は Java でチェスのバリエーションを作成しています。コンソール プログラムを希望どおりに動作させていますが、コンソールをそのまま維持しながら、スイング GUI に変換しようとしています。これまでのところ、コンソール用にピースが入った正方形の配列と、GUI 用にピースが入った JPanel の 2 次元配列があります。私はまだ GUI に可動部分を実装していないので、まだコンソールから実行していますが、実際の GUI は部分を移動した後に更新されません...コンソールではそうですが (これがあれば申し訳ありません)紛らわしいです)。
GUI は、いくつかのメソッド drawBoard() および drawSidebar() を呼び出し、サイズ、タイトルなどを設定するコンストラクターで構成されています...メイン メソッドは次のようになります。
違いが生じる場合は drawBoard() :
コンソールが更新されているにもかかわらず、 repaint メソッドと revalidate メソッドがまったく呼び出されていないようです:(
java - repaint(long) がすぐに再描画されるのはなぜですか?
Javadoc によると、JComponent.repaint(long)は将来いつか repaint() をスケジュールすることになっています。使用しようとすると、常にすぐに再描画がトリガーされます。私は何を間違っていますか?
java - Java の JComponent repaint() を使用する
私は Java で簡単なライフ ゲーム プログラムを書いていますが、アニメーション化するのに少し苦労しています。次のペイント メソッドを使用して、ピクセルのグリッドを表示するLifeDrawというJComponentクラスがあります。
次に、メソッドを持つ別のクラスLifeGridrun()
が呼び出されたときに、1 世代のピクセルのグリッドを更新してから を呼び出しますLifeDraw.repaint()
。run()
ただし、ループで呼び出そうとすると、ループが終了するまでJComponentは再描画されないため、表示されるのは最初の世代と最後の世代だけです。おそらく更新が速すぎて再描画できないと考えたのでThread.sleep()
、繰り返しの間に使用してみましたが、それでも同じ問題がありました. 理論的には (または、少なくとも私はそうなることを望んでいました)、反復ごとにコンポーネントを再描画し、ピクセルの変化のアニメーションを表示する必要があります。
私はJava GUIに精通していないので、助けていただければ幸いです。うまくいけば、私はそれを十分に明確に説明しました。そうでなければ教えてください!
java - Swing JPanel が再描画されない
拡張する単純なオブジェクトがあります。このオブジェクトJPanel
でupdate()
メソッドが呼び出されると、パネルにいくつかのラベルを追加してから再描画することを意味しました。ただし、更新メソッドが呼び出された後、ラベルは表示されません。以下は更新のコードです。
何か案は?
ありがとう
編集
解決済み:
HoleCardsPanel
が親フレームに適切に追加されていないことが判明しました。JLabel
それが修正されると、新しいs の追加は正常に機能します。私も:
- を使用して、メソッドへの呼び出しを
update()
イベントディスパッチスレッドに追加しましたSwingUtillities.invokeLater
- Devon_C_Millerが回答で示唆しているように
validate()
、最上位のコンポーネント (この場合は) から呼び出す必要がありました。JFrame
qt4 - update()またはrepaint()がpaintEvent()のトリガーに失敗する
私の素晴らしいスクロールウィジェットの父となるQScrollAreaがあります。いろいろな場面で内容を更新していきたいです。
このために、のオーバーライドを行いましたpaintEvent(QPaintEvent *)
。その後、それを実行したいときはいつでもupdate()
、ウィジェットを呼び出します。
問題: paintEvent()
これによって呼び出されることはありません!
これまでのトラブルシューティングで試したこと:
repaint()
の代わりに使用してくださいupdate()
。すぐに呼び出す必要があります。残念ながらそうではありません。isVisible()
とのテストupdatesEnabled
- オーバーライドが正しいかどうかをテストします。ウィンドウのサイズを変更すると、関数が呼び出されます。手動のupdate()、repaint()呼び出しのみが失敗します。
- QTimerを実装して、500ミリ秒ごとにupdate()またはrepaint()をトリガーします。トリガーはテキスト出力を提供し、関数は呼び出されません。
誰かが次に何をチェックするべきか考えましたか?repaint()がpaintEvent()を呼び出さないようにするにはどうすればよいですか?