問題タブ [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.

0 投票する
4 に答える
2362 参照

c++ - c++gdiアニメーションが機能しない

gdiを使用してボールアニメーションを作成しようとしていますが、機能させることができません。これを使ってボールを作りました

ペンペン(Color(255、0、0、255)); graphics.DrawEllipse(&pen、sf、0、10、10); 基本的にこのsf++のように、ループしてsf値に1を追加するwhileループがあります。私がウィンドウを塗り直そうとするよりも(それは機能しません)、それで病気は複数の円で終わります; /ここにループがあります(ループはint WM_PAINTです)

よろしくお願いしますラミ

0 投票する
4 に答える
956 参照

java - Eclipseからアプリを実行するときにrepaint()が呼び出されませんか?

Eclipse と Run->cmd を使用してプログラムを実行すると、コマンド ライン ウィンドウに「ペイント」が書き込まれません。別のプログラムで paintComponent から System.out.print() を実行すると、正常に動作します。助けてくれる人?

0 投票する
1 に答える
549 参照

jquery - jQuery: 再描画の削減

多くのブラウザはアニメーションの処理に苦労しているため、画像ギャラリー スライダーを最適化する必要があります。

次の例を検討してください。

もちろん、これは多くのブラウザーに大きな負荷をかけ、20 ミリ秒ごとに 3 回の再描画が必要になります。

3 つの div のクローンを作成し、オフラインで作業し、すべてを一度に置き換えて、再描画の量を 1 つに減らす方法はありますか?

他の提案があれば、遠慮なく共有してください

ありがとう!

0 投票する
5 に答える
5130 参照

iphone - プログラムでデータを更新した後、iPhone3.x用のUITextViewを再描画する方法

私のアプリでは、textViewをプログラムで更新します。私は実際にSQLITE3DBからのデータセットをループして、特定の時間の特定のテキストを表示します。次に、次のデータセットレコードなどのテキストを表示したいと思います。私はあらゆる種類のフォーラムとアップルのドキュメントを閲覧してきましたが、repaint、refresh、updateTextViewなどのコマンドは見つかりませんでした。私は長い文字列を扱っていますが、UITextViewが表示するのに最適な方法だと思ったのはなぜですか。ただし、UITextFieldやUILabelなどの別のUIクラスの方が、私が探しているものを実現するのに優れていて簡単な場合は、それも使用します。問題ない。

0 投票する
2 に答える
201 参照

java - JScrollPane は常にパネルをクリアします

Hy .. JPanel があり、この contentPanel に他のカスタム パネルを追加して場所などを指定しました。したがって、JScrollPane を contentPanel に追加し、下にスクロールすると常に contentPanel がクリアされますが、パネルはまだそこにあります。でも見えない…

それらを再び表示するにはどうすればよいですか?

これは、Panel を contentPanel に追加するための私のコードです。私は固定ウィンドウを持っているので、x、y、j は場所の設定項目です。

ありがとう

0 投票する
1 に答える
1059 参照

delphi - Delphi 6 - Graphics32 ライブラリを使用しているときにオーナー ウィンドウの再描画が必要な場合にのみビットマップが更新される

ネイティブの Delphi コードを使用して TPaintBox Canvas で 3D モーションを作成するアプリケーションがあります。古いコードでは、Timer イベントで 3D イメージを一時的な TBitmap にレンダリングしました。TPaintBox の OnPaint() イベントでは、一時的な TBitmap を TPaintBox の Canvas に BitBlt() します。このアプローチはうまくいきましたが、動きがぎくしゃくしていました。

モーションの滑らかさに満足できなかったので、代わりに非常に大きなワークスペース ビットマップに「レンダリング」してから、それを TPaintBox Canvas にダウンサンプリングすることにしました。リサンプリングを行うために、ここで読んだ Graphics32 ライブラリを使用しました。

Delphiで画像をうまくスケーリングしますか?

大きな TBitmap32 (幅 1100 x 高さ 1100) にレンダリングするようにコードを変更し、それをダウンサンプリングするときに、TLanczosKernel カーネルで Graphics TKernelResampler オブジェクトを使用して、別の TBitmap32 にダウンサンプリングします。 TPaintBox Canvas を開き、TPaintBox の Refresh メソッドを呼び出します。TPaintBox OnPaint イベントで、ダウンサンプリングされた TBitmap32 を TPaintBox Canvas に BitBlt() します。

これは機能しますが、問題は、TPaintBox を所有するフォームが再描画を必要とする場合にのみ再描画が表示されることです。これは、レンダリングが完了した直後に TPaintBox で Refresh メソッドを呼び出すという顔にもかかわらず、古いコードでは発生しなかった問題です。私が言ったように、それに。有効性テストとして、事前レンダリングに使用する大きな高解像度 TBitmap32 オブジェクトと小さな TBitmap32 オブジェクトの両方で SaveToFile() を呼び出しました。ビットマップは、Timer イベント間でフレームのコンテンツがまったく変更されていないことを実際に示していたため、少なくとも TPaintBox コンポーネントでは、奇妙な再描画関連の問題ではありません。

フォームを移動するか、フォームのクライアント領域の一部を別のフォームでオーバーレイしてフォームのキャンバスを無効にすると、TBitmap32 オブジェクトのコンテンツが更新され、チェックとしてディスクに保存したビットマップ イメージも更新されます。

大規模な高解像度ワークスペースにレンダリングした新しいコンテンツが更新されるように、Graphics32 TBitmap オブジェクト自体を無効にする必要があるかのようです。ただし、TBitmap32 にはそのような無効化/更新呼び出しはありません。

Graphics32 ライブラリの経験があり、フォームの再描画が必要な場合やクライアント領域が無効になっている場合にのみ画像が変更される理由を教えていただければ幸いです。

0 投票する
2 に答える
1507 参照

java - 仮想デスクトップを切り替えるときに、部分的に非表示の JFrame が Linux で正しく再描画されないのはなぜですか

仮想デスクトップの切り替え時に Java 6 アプリケーションが適切に更新されないという問題があります。これまでのところ、問題は Fedora 11 および 13 と GNOME、および Suse SLES 10 と KDE で再現されています。問題を再現するために、次のテスト ケースを使用します。

このプログラムを起動し、ターミナル ウィンドウなどの別のウィンドウを部分的に前面に移動します。ウィンドウの背景が赤くなるのを待ち、別の仮想デスクトップに切り替えて 5 秒間待ってから、元の画面に戻ります。背景は完全に緑色になるはずです。代わりに、他のウィンドウでカバーされていない表示部分で部分的にのみ更新されたウィンドウが表示されます。

この問題は Java 5 では発生せず、起動時に次のプロパティのいずれかを使用する場合には発生しません。

また

ただし、Swing のダブル バッファリングをオフにすることは、あまり良い選択肢ではないようです。これは Linux の JDK のバグですか、それともアプリケーションでこの再描画の問題を解決するために何かできることはありますか?

0 投票する
3 に答える
1625 参照

java - MouseMoved で Java Repaint を実行するとラグが発生する

ユーザーがダイアグラム上を移動したとき ( -> ダイアグラムの名前を表示する ) およびユーザーがダイアグラム上を移動しなかったとき ( - > ダイアグラムの名前を表示しないでください )。しかし、これにより、アプリケーションの実行時に大きな遅延が発生します (画面の再描画が非常に遅く、遅延があり、再描画される前に毎回 1 秒ほど画面が空白になり、再描画に時間がかかります)。

これらは、それに関するコードの部分です。

ダイアグラムがホバーされたかどうかを確認し、ダイアグラムがホバーされたかどうかを変数に設定する関数を呼び出します。ホバーされている場合は、どのダイアグラムがホバーされたか (表示する名前、実行する x と y の位置)、アプリを再描画します。したがって、基本的に、マウスの動きが行われるたびにアプリを再描画して、ユーザーがダイアグラム上を移動したときにのみダイアグラムの名前が表示されるようにします。ただし、これにより、画面が大幅に遅れ、途切れ途切れの再描画が発生します。

今、私は疑問に思っていました:これを解決する最善の方法は何ですか? マウスの動きをチェックするために何らかの遅延を実装する必要がありますか?

前もって感謝します、

スカイフェ。

0 投票する
3 に答える
2213 参照

java - 高速再描画の質問(キャンバスオブジェクト)

新しい詳細:

メインクラスのactionPerformedイベント内から呼び出された場合、JPanelオブジェクトのRepaintメソッドが機能しません。これは、メインクラスImageViewerのImageViewerメソッド内では機能しますが、このクラスのactionPerformedメソッド内では機能しません。

これらは、正しく機能していない私のコードの重要な部分です(部分の再描画):

メインクラス:

GraphicsPanelクラス:

0 投票する
1 に答える
616 参照

java - paintComponent()は、repaint()の後に以前に描画された画像を残します

.png画像を描画するJPanelがあります。各画像には、選択されているかどうかを示す2つのコピーがあります。1つの画像は正常で、もう1つの画像には、選択が行われたことを示す色付きの境界線があります。(これらの画像は、議論のために単純な形と考えることができます)

描画される画像のバージョンは、MouseListenersを介して決定されます。ユーザーがimage1を選択すると、image1は強調表示されたバージョンを表示します。

通常、これは機能していますが、repaint()を実行すると、強調表示されたバージョンの画像が残されます。ハイライトされたバージョンは通常のバージョンよりもわずかに大きいため、新しく描画された通常の画像の後ろに突き出ている(オーバーラップしている)ことがわかります。

repaint()は現在の図面を完全に破棄し、最初から開始することになっていると思いましたが、ここではそうではないようです。以下は一般的な考え方です。blackClickedはMouseListener内で切り替えられます。

だから私の質問は、repaint()に現在描画されている画像を取り除き、最初から始めるにはどうすればよいかということです。

また、これをすべて達成するためのより簡単な方法がある場合は、私に知らせてください。画像のコピーを2つ作成するのは面倒な作業です。