問題タブ [paintcomponent]

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 投票する
2 に答える
688 参照

java - 奇妙なグラフィカルなバグ: コンポーネント A のコピーがコンポーネント B にペイントされています。ヘルプ! (ジャワ)

ブラシツールを使用していくつかの異なる色をペイントして消去できる簡単なペイントプログラムを作成しました(単に白でペイントするだけです)。

それは正常に動作しますが、ツールパネルと最後にマウスオーバーされた色/ツールアイコンが描画パネルの上に描画されるという非常に奇妙なグラフィカルなバグがあります。

実装: フレームには、JPanel の 2 つの拡張 (ToolPanel と DrawPanel) が保持されます。ToolPanel は、カラー ボタンとツール ボタンを保持する 2 つの JPanel を保持します。ボタンは JComponent の拡張機能です。

スクリーンショットへのリンク(画像を投稿することは許可されていません):

ここに画像の説明を入力

注: 2 番目の「偽の」ツールパネルのボタンは、クリックできる実際のボタンではなく、その上にペイントできます。左隅にある「偽の」色のボタンをペイントすると、マウスを新しい色の上に置き、マウスで描画パネルに入ると、再び再描画されます。

注2:以前は、ドローパネルにも描画されたJMenuBarがありました。ウィンドウ(パネルだけでなく)が一度フォーカスを失った後、ドローパネルがマウスオーバーされるたびに再描画されました。

いくつかのコード: (ツール選択の実装が最適ではないことはわかっています:P)

DrawPanel の paintComponent メソッド:

関連する情報や省略したコードがあれば教えてください。

仮説: DrawPanels の paintComponent メソッドで super.paintComponent を呼び出さなかったので、問題が発生したのではないでしょうか? そうしなかった理由は、そうすると背景が常に再描画され、最後にペイントしたドットだけが表示されるようになるためです。スーパーコールが実際に問題を解決するのか、それとも偽のパネルも背景で覆われているだけなのかは不明です。多分私はそれを別の方法で回避する必要がありますか?それとも別のものですか?

ありがとう!

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

java - JPanel Graphicsのクリアと再ペイント?

JPanel関数付きがありますpaintComponent()。一度呼び出してから、ユーザーが別JButtonのフラグをクリックしたときに、フラグを設定します。フラグが設定された後は少し異なる動作をするため、この関数をもう一度呼び出します。

だからここに私が疑問に思っていることがあります:既存のものをどのようにクリアするのpaintComponentですか?そして、再描画するために、paintComponentもう一度電話しますか?

現在、私は次のことを試みています:

ペイントコンポーネントでは、次のようなことを行います。

しかし、テストを通して、私がしていることに何か問題があるようです。

助けてくれてありがとう。

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

java - JButton のカスタマイズの問題

JButton のカスタマイズについて助けが必要です。

そのために次の拡張メソッドを使用しています...ボタンに背景色を追加する必要があり、ボタンの2つの場所(左上と中央)に2つの異なるテキストを配置する必要があります

私のコードは、両方のシナリオ (色とテキストの位置) をサポートできません。テキストを配置するか、BG の色を取得することができます。現在のコードでは、BGの色を取得していますが、テキストが表示されません

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

java - Java でピクセル画像をペイントする

Javaでピクセル画像を作成する最良の方法はどれですか. たとえば、サイズが 200x200 で合計 40.000 ピクセルのピクセル画像を作成したいとします。ランダムな色からピクセルを作成し、JFrame の特定の位置にレンダリングするにはどうすればよいですか。

ピクセルを作成するだけの独自のコンポーネントを作成しようとしましたが、そのようなピクセルを for ループで 250.000 回作成し、各インスタンスを JPanels レイアウトに追加すると、パフォーマンスが低下するようです。

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

java - ツールチップ テキストは Java のパネル描画を消去します

メソッドを使用してJPanelいくつかの描画が実行される がpaintComponentあり、その後、ユーザーがJPanel文字列をクリックするたびに文字列 (または任意の描画) が描画され、ユーザーがマウスを の上に移動するとJPanel、 のツールチップに座標が表示されJPanelます。

1)問題は、ツールチップが描画された文字列の上に来るとそれを消去することですが、このツールチップテキストはメソッドで実行した描画部分に消去効果がありませんpaintComponent. なぜこれが起こっているのか理解できません。

2)また、クリックして文字列を描画し、アプリケーションを最小化して復元すると、描画された文字列がなくなります。

私が言いたいことを皆さんが理解してくれることを願っています。

コードは次のとおりです。

事前に感謝します....

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

java - JFrame のペイントを自動的に更新するにはどうすればよいですか?

現在、私はJFrameを含むを持っていますJPanel。これJPanelは私のプログラムのペイントです。Graphics g私の.drawString のものすべてを意味するペイント。現在、ユーザーがJFrameを操作するたびに表示のみを更新しますが、while ループを使用せずに継続的に更新 ( repaint()) したい (CPU 使用率が高すぎる)。

どうすればこれができるか知っている人はいますか?

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

java - JFrameを再描画しない方法は? 塗るだけ

簡単なプログラムのヘルプが必要です。プログラムをクリックすると、それがマークされます。自分の動きが過去に行われたことを確認したいと思います。絵の具の鉛筆のように。

クラス Test.java

クラスグラフパネル

手伝ってくれてありがとう。

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

java - Swing - paintComponent メソッドが呼び出されていない

以下のようにJPanelを継承するクラスを単純に実装しました

クラスOrpanelは画像をロードし、独自のサイズを調整しています。

ここで質問です。

JFrame の setContentpane(Orpanel のインスタンス) を呼び出すと正常に動作しますが、setContentpane の代わりに add() メソッドを呼び出して Orpanel を JFrame にアタッチすると (setcontentpane はアタッチを意味しないことがわかっています)、動作しません。

add() メソッドを使用したときに最終的にわかりました。JFrame に追加されたコンポーネントは、paintComponent() メソッドを呼び出しません。repaint() メソッドを手動で呼び出しても、paintComponent() メソッドは呼び出されません。

私は何か見落としてますか?どんな助けでも大歓迎です!

事前にt​​hx。ジェヨンシン。


私は余分なコードを追加しました。

setContentpane() メソッドが getContentpane().add() に置き換えられた場合でも機能しません。混乱しないでください。Owpanel と Orpanel は同じです :)

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

java - シンプルなカスタムSwingJComponentは常にフラット

私はSwingで遊んでいて、本当に単純なSwingコンポーネントに取り組んでいます。クラスから継承されたコンポーネントと。JComponentから継承されたUIがありComponentUIます。メソッドは次のpaint()ようになります。

ただし、1以外の値を取得することは完全に不可能r.heightです。コンポーネントは指定された幅ですが、高さは常に1ポイントのみです。他の誰かがそのようなコンポーネントを経験したことがありますか?残念ながら、簡単なチュートリアルはありません。すべてのチュートリアルは理解できないほど複雑です(または時代遅れです)。

レイアウトマネージャーは、このコンポーネントのサイズを常に1の高さに変更しているようです(最小値に関係なく)。

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

java - JApplet内の画像を垂直線で移動するには?

JApplet 内に画像 (ボール) を表示しましたが、画像を垂直方向 (上下) に移動させたいと考えています。問題は、私がそれを行う方法がわからないことです。

誰かがこの問題について考えを持っていますか?