問題タブ [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.
java - 奇妙なグラフィカルなバグ: コンポーネント A のコピーがコンポーネント B にペイントされています。ヘルプ! (ジャワ)
ブラシツールを使用していくつかの異なる色をペイントして消去できる簡単なペイントプログラムを作成しました(単に白でペイントするだけです)。
それは正常に動作しますが、ツールパネルと最後にマウスオーバーされた色/ツールアイコンが描画パネルの上に描画されるという非常に奇妙なグラフィカルなバグがあります。
実装: フレームには、JPanel の 2 つの拡張 (ToolPanel と DrawPanel) が保持されます。ToolPanel は、カラー ボタンとツール ボタンを保持する 2 つの JPanel を保持します。ボタンは JComponent の拡張機能です。
スクリーンショットへのリンク(画像を投稿することは許可されていません):
注: 2 番目の「偽の」ツールパネルのボタンは、クリックできる実際のボタンではなく、その上にペイントできます。左隅にある「偽の」色のボタンをペイントすると、マウスを新しい色の上に置き、マウスで描画パネルに入ると、再び再描画されます。
注2:以前は、ドローパネルにも描画されたJMenuBarがありました。ウィンドウ(パネルだけでなく)が一度フォーカスを失った後、ドローパネルがマウスオーバーされるたびに再描画されました。
いくつかのコード: (ツール選択の実装が最適ではないことはわかっています:P)
DrawPanel の paintComponent メソッド:
関連する情報や省略したコードがあれば教えてください。
仮説: DrawPanels の paintComponent メソッドで super.paintComponent を呼び出さなかったので、問題が発生したのではないでしょうか? そうしなかった理由は、そうすると背景が常に再描画され、最後にペイントしたドットだけが表示されるようになるためです。スーパーコールが実際に問題を解決するのか、それとも偽のパネルも背景で覆われているだけなのかは不明です。多分私はそれを別の方法で回避する必要がありますか?それとも別のものですか?
ありがとう!
java - JPanel Graphicsのクリアと再ペイント?
JPanel
関数付きがありますpaintComponent()
。一度呼び出してから、ユーザーが別JButton
のフラグをクリックしたときに、フラグを設定します。フラグが設定された後は少し異なる動作をするため、この関数をもう一度呼び出します。
だからここに私が疑問に思っていることがあります:既存のものをどのようにクリアするのpaintComponent
ですか?そして、再描画するために、paintComponent
もう一度電話しますか?
現在、私は次のことを試みています:
ペイントコンポーネントでは、次のようなことを行います。
しかし、テストを通して、私がしていることに何か問題があるようです。
助けてくれてありがとう。
java - JButton のカスタマイズの問題
JButton のカスタマイズについて助けが必要です。
そのために次の拡張メソッドを使用しています...ボタンに背景色を追加する必要があり、ボタンの2つの場所(左上と中央)に2つの異なるテキストを配置する必要があります
私のコードは、両方のシナリオ (色とテキストの位置) をサポートできません。テキストを配置するか、BG の色を取得することができます。現在のコードでは、BGの色を取得していますが、テキストが表示されません
java - Java でピクセル画像をペイントする
Javaでピクセル画像を作成する最良の方法はどれですか. たとえば、サイズが 200x200 で合計 40.000 ピクセルのピクセル画像を作成したいとします。ランダムな色からピクセルを作成し、JFrame の特定の位置にレンダリングするにはどうすればよいですか。
ピクセルを作成するだけの独自のコンポーネントを作成しようとしましたが、そのようなピクセルを for ループで 250.000 回作成し、各インスタンスを JPanels レイアウトに追加すると、パフォーマンスが低下するようです。
java - ツールチップ テキストは Java のパネル描画を消去します
メソッドを使用してJPanel
いくつかの描画が実行される がpaintComponent
あり、その後、ユーザーがJPanel
文字列をクリックするたびに文字列 (または任意の描画) が描画され、ユーザーがマウスを の上に移動するとJPanel
、 のツールチップに座標が表示されJPanel
ます。
1)問題は、ツールチップが描画された文字列の上に来るとそれを消去することですが、このツールチップテキストはメソッドで実行した描画部分に消去効果がありませんpaintComponent
. なぜこれが起こっているのか理解できません。
2)また、クリックして文字列を描画し、アプリケーションを最小化して復元すると、描画された文字列がなくなります。
私が言いたいことを皆さんが理解してくれることを願っています。
コードは次のとおりです。
事前に感謝します....
java - JFrame のペイントを自動的に更新するにはどうすればよいですか?
現在、私はJFrame
を含むを持っていますJPanel
。これJPanel
は私のプログラムのペイントです。Graphics g
私の.drawString のものすべてを意味するペイント。現在、ユーザーがJFrame
を操作するたびに表示のみを更新しますが、while ループを使用せずに継続的に更新 ( repaint()
) したい (CPU 使用率が高すぎる)。
どうすればこれができるか知っている人はいますか?
java - JFrameを再描画しない方法は? 塗るだけ
簡単なプログラムのヘルプが必要です。プログラムをクリックすると、それがマークされます。自分の動きが過去に行われたことを確認したいと思います。絵の具の鉛筆のように。
クラス Test.java
クラスグラフパネル
手伝ってくれてありがとう。
java - Swing - paintComponent メソッドが呼び出されていない
以下のようにJPanelを継承するクラスを単純に実装しました
クラスOrpanelは画像をロードし、独自のサイズを調整しています。
ここで質問です。
JFrame の setContentpane(Orpanel のインスタンス) を呼び出すと正常に動作しますが、setContentpane の代わりに add() メソッドを呼び出して Orpanel を JFrame にアタッチすると (setcontentpane はアタッチを意味しないことがわかっています)、動作しません。
add() メソッドを使用したときに最終的にわかりました。JFrame に追加されたコンポーネントは、paintComponent() メソッドを呼び出しません。repaint() メソッドを手動で呼び出しても、paintComponent() メソッドは呼び出されません。
私は何か見落としてますか?どんな助けでも大歓迎です!
事前にthx。ジェヨンシン。
私は余分なコードを追加しました。
setContentpane() メソッドが getContentpane().add() に置き換えられた場合でも機能しません。混乱しないでください。Owpanel と Orpanel は同じです :)
java - シンプルなカスタムSwingJComponentは常にフラット
私はSwingで遊んでいて、本当に単純なSwingコンポーネントに取り組んでいます。クラスから継承されたコンポーネントと。JComponent
から継承されたUIがありComponentUI
ます。メソッドは次のpaint()
ようになります。
ただし、1以外の値を取得することは完全に不可能r.height
です。コンポーネントは指定された幅ですが、高さは常に1ポイントのみです。他の誰かがそのようなコンポーネントを経験したことがありますか?残念ながら、簡単なチュートリアルはありません。すべてのチュートリアルは理解できないほど複雑です(または時代遅れです)。
レイアウトマネージャーは、このコンポーネントのサイズを常に1の高さに変更しているようです(最小値に関係なく)。
java - JApplet内の画像を垂直線で移動するには?
JApplet 内に画像 (ボール) を表示しましたが、画像を垂直方向 (上下) に移動させたいと考えています。問題は、私がそれを行う方法がわからないことです。
誰かがこの問題について考えを持っていますか?