問題タブ [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 - repaint() を呼び出しても何も描画されないのはなぜですか?
まず第一に、私は初心者です。s の配列を使用してパズル ゲームを作成しようとしていPiece
ます。それぞれPiece
が 1 から 9 までの数字を表していpaintComponent(Graphics g)
ますrepaint()
。エラーはありませんので、私が気づいていない点があるはずです。
NetBeans を使用しています。新しいデスクトップ アプリケーションを作成し、 と を追加しましJPanel
たJButton
。
これは私のコードです:
repaint()
ボタンをクリックしたときにメソッドを呼び出そうとしています。
クラスは次のPiece
とおりです。
これは最初のステップにすぎません。やるべきことがたくさんあります。でも、やり方public void paintComponent(Graphics g)
やrepaint()
働き方を完全に理解するまで先には進めません。
ですから、助けていただければ幸いです。
java - GUI の更新時にスレッドで例外が発生する
私の問題は単純ですが、コードは複雑で、答えを見つけるのは簡単ではありません。そのため、助けを求めています。
私はマルチスレッドアプリケーションをプログラミングしています.これがどのように機能するかです:
1) 1 つのスレッドがファイルを読み取り、テキストファイルから情報を解析しています (500 ミリ秒ごとにファイルの最後に到達しようとします)。
2) 関連する情報が見つかると、スレッドはそれを保存し、オブザーバーであるコントローラーに通知します。
3)コントローラーに通知されると、ユーザーに表示したい情報を更新する他のスレッド(GUI)に通知します。
GUI があまりにも頻繁に更新されるため、私が呼び出すrevalide()
かvalidate()
、または例外がある場合を除きます。repaint()
500ミリ秒ごとrevalidate()
にGUIを試行する別のスレッドを実行することを考えましたが、より良い代替手段があるかもしれません。呼び出す前にGUIスレッドを停止してから再開するなど、心配する必要があることはありrevalidate()
ますか?
はい、パネルからコンポーネント (JLabels) を削除して、新しいデータのコンポーネントに置き換えます。私はあなたが言ったことを試してみます。
ところで、invokelater と start like another thread に大きな違いはありますか?
解決 :
次のようなメソッドを作成しました。
c# - C# ユーザー コントロールの再描画
メインフォームといくつかのカスタム ユーザー コントロールを含む C# アプリケーションがあります。
メインフォームを移動すると、ユーザー コントロールが再描画を続け、メインフォームの移動を停止すると再び再描画されます。
この再描画を無効にするにはどうすればよいですか?
java - Swingの要素の再描画が完了するのを待っています
repaint
Swingの完成を待ちたいです。
例:
私はこのようなものを持っています:
これは正しい方法ですか?
java - コンテナーを使用した Java Swing での再描画
ユーザーがクリックした場所に正方形を配置する単純なグリッドがあります。グリッドとペインへのアクセスは、「ゲーム」オブジェクトに保持されます。
これは機能します:
これは再描画をトリガーしません:
パネルをゲームのパブリック変数にすると、これも機能しません。
「getPanel」は、上部の「パネル」オブジェクトが参照している同じカスタム パネル オブジェクトを返すだけです。
パネルを Game オブジェクト ラッパーに含めたいと思います。同様に、「購入」関数内で再描画関数を呼び出しても機能しません。
上記の例で「再描画」機能の動作が異なるのはなぜですか?
javascript - 既存の HTML を操作するか、HTML を削除してから再作成する方が速いですか?
私が取り組んでいるこのプロジェクトでは、要素のリストがあり、それらを「グラフ」に変換します(真のグラフではありませんが、疑似グラフと呼ぶことができます)。私は自分のデータセットを持っています。データに対してfor
ループを実行しli
、それぞれの要素を作成し、 create と parent を作成しul
、li
s を追加してから、既にページにある別の DOM 要素 (祖父母と呼びます) に親を追加します。 . その後、ユーザーの操作に基づいてそのリストを更新する必要があります。
また、これはすべて jQuery を使用するコンテキストにあります。
さて、私の質問は、要素を一度作成してから、後続の各呼び出しで結果の HTML を更新する方が速いですか、それとも、各要素、empty()
祖父母要素 (親を取り除くul
) を再作成してから、新しく再追加する方が速いですか?作成されましたul
か(私は今やっています)?
s を再作成するときli
、それらは DOM にまったくないため、再作成中に再描画/リフローが発生しないことに注意してください。再描画は、新しく作成した を再追加したときにのみ発生しul
ます。
同僚と話したところ、HTML 要素を毎回再作成するよりも、一度作成したら更新する方がよいとのことでした。私はこのルートに行くことを考えていましたが、既存li
の を更新すると、実際にはたとえば 50 個の要素が再描画されempty()
、新しく作成されul
た .
考え?
java - 透明な塗装された長方形の上にJLabel?
JWindow の背景を完全に透明に設定しました。次に、ペイント メソッドで角丸長方形 (RGB: 0,0,0,100) をペイントし、JWindows ContentPane に JLabel を追加しました。しかし、JWindow を再描画して JLabel を更新しようとすると、古い Rectangle と JLabel の古い値が削除されません。その結果、カスタム ツールチップ ボックス (あるべき姿) の透明性が低下し、JLabels の内容を読み取ることができなくなります。これは、古い内容をオーバーレイするためです。
この問題を解決する方法はありますか?
ところで、再描画しなくても透明度が低下することはありませんが、再描画すると、JLabel の新しいコンテンツが古いコンテンツにオーバーレイされます。
android - Androidアプリで画像を表示し、頻繁に変更する効率的な方法は?
レイアウトにいくつかの imageViews があります。頻繁に (5 ~ 10 秒) いくつかの画像を変更したい (別のソースを使用)。
私はアンドロイドの初心者にすぎないので、エネルギー的には imageView を使用することは私の目的にとって意味がありますか?
頻繁に変化する複数の画像を表示するための、より効率的な方法はありますか?
前もって感謝します!
java - Java -- アニメーションの場合、ロジック クラスは疎結合ビューに再描画を通知する方法
頻繁に再描画するアプリケーションの場合、「モデル」は、コンポーネントの 1 つを繰り返し再描画する必要があることを「ビュー」にどのように通知する必要がありますか。これ:
p>特に、プログラムが実行されているほとんどの時間でアニメーションが再描画されている場合は、パネルをアニメーション化するのはひどい方法のように思えます。助言がありますか?ありがとう。
*スレッドなどの明らかなエラーは無視してください
java - Java グラフィックの再描画の問題
Java の単純なペイント パッドに問題があります。クリア ボタンを再描画する際の問題。配列はクリアされていますが、再描画されていません。誰でも私の問題を見つけることができますか、またはこのコードのクリアボタンを生成する別の方法はありますか?
}