問題タブ [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 投票する
1 に答える
796 参照

java - jcomponentに追加されるコンテナにペイントする

いくつかのJComponentオブジェクトを追加するjrameがあります。各JComponentには、JComponent.add(Component)を使用して追加したコンテナーのリストがあります。

MyComponentと呼ばれるメインのJComponentクラスで、保護されたメソッドpaintComponentをオーバーライドして、ペイントできるようにしました。これは非常にうまく機能します。

ただし、メインのJComponentにペイントしたくないので、メインのJComponentに追加したコンテナーにのみペイントしたいと思います。

したがって、paintComponentのMyComponentでは、次のようにします。

行this.getPage( "main")。getGraphics(); コンテナのMyComponentsリストに追加されたコンテナの1つから、そしてもちろんJComponentsaddメソッドを使用してメインコンポーネントリストにGraphicsオブジェクトを取得します。setVisible(true);を呼び出すことにより、コンテナーが表示されるように設定されます。方法。

しかし、何も起こりません。画面が空です。page_gをgに置き換えると、JComponent(MyComponent)にペイントするため、ペイントは機能しますが、この場合はMyComponentの子であるコンテナーにペイントしたいと思います。

「getGraphics()は絶対に使用しないでください」とよく耳にします。しかし、親のpaintComponentメソッドが呼び出されたときに、親コンポーネントのサブコンポーネントのみを描画する方法は他にありますか?

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

java - JPanelに楕円を追加する(paintComponent)

ネストされたJPanelを使用したレイアウトで、描画された楕円を追加したいと思います。

このために私は以下を使用します:

今、私のパネルの1つで、この楕円形を追加したいのですが、これを追加できないようです。

どんな入力でも大歓迎です!

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

java - JApplet で BufferedImage を表示する方法

ジャプレットに画像は表示されません。

それが私がファイルを取得する方法です。

上記のコードはアプレットにあります。

私は何を間違っていますか?エラーが発生するのはなぜですか。「入力ファイルを読み取れません!」

どんな助けでも大歓迎です。

ありがとう、ブラグマン

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

java - レイアウトを BorderLayout に設定すると、paintComponent が呼び出されないのはなぜですか?

次のサンプル プログラムでは、useBorderlayout を true に設定すると、paintComponent メソッドが呼び出されません。

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

java - jpanelはバッファリングされた画像を描画しませんが、バッファリングされた画像はファイルとして作成できます

こんにちは私は描画するjpanelを持っています。このjpanelから、バッファリングされたイメージを作成し、それらをリンクリストに安全にします。ボタンを押すと、このバッファリングされた画像をアニメーション化します(1つずつ再生します)問題は、jpanelがバッファリングされた画像を表示しないことですが、ImageIO.writeを使用してディスク上のバッファリングされた画像を保護すると、アニメーション化するすべての画像が表示されます。plsは私を助けます。

これが私のコードです:


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

java - repaint() を呼び出しても何も描画されないのはなぜですか?

まず第一に、私は初心者です。s の配列を使用してパズル ゲームを作成しようとしていPieceます。それぞれPieceが 1 から 9 までの数字を表していpaintComponent(Graphics g)ますrepaint()。エラーはありませんので、私が気づいていない点があるはずです。

NetBeans を使用しています。新しいデスクトップ アプリケーションを作成し、 と を追加しましJPanelJButton

これは私のコードです:

repaint()ボタンをクリックしたときにメソッドを呼び出そうとしています。

クラスは次のPieceとおりです。

これは最初のステップにすぎません。やるべきことがたくさんあります。でも、やり方public void paintComponent(Graphics g)repaint()働き方を完全に理解するまで先には進めません。

ですから、助けていただければ幸いです。

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

java - Java - BufferedImage ファイルの変更

JPanel を拡張して MouseListener を実装する Java クラスがあり、JButton のいくつかの基本的な機能を複製しようとしていますが、いくつかのロードされた画像を使用して物事をよりきれいにしています。これが私のコードの一部です。

クラス フィールド:

コンストラクターには次のものがあります。

次に、paintComponent をオーバーライドして画像を描画します。

そして、それはうまくいきます!万歳。しかし、画面に描かれている画像も変更できるようにしたいです。これは機能しません:

mousePressed() は間違いなく正常に起動します (System.out.println() デバッグ ステートメントを試しました)。描画される画像を正常に変更するにはどうすればよいですか?

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

java - Java Swing/AWT プログラムの拡張

頭を描画する小さな Swing プログラムを作成しました。ユーザーが JCheckBox インスタンスを選択/選択解除すると、頭の上に帽子が描画または削除されます。このプログラムで次のステップに進むのに問題があります。このコンポーネントが MouseListener でマウス イベントをリッスンするようにするブール フィールドを Head クラスに追加したいと考えています。そこから、2 つのメソッドを使用してこのフィールドを true/false に設定し、残りの 3 つのメソッドをレイム ダックにレンダリングしたいと考えています。また、ブール値がtrueの場合、オブジェクトが目を開いて描画され、falseの場合、目を閉じて頭が描画されるように、paintComponentメソッドを変更するにはどうすればよいですか? アドバイスがあれば教えてください。どうもありがとう!

----------------------------------- 2 回目の試行

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

java - 別のコンポーネントで外部コンポーネント(つまり、別のフレームのコンテンツペインに属する)をペイントする

ハローみんな。フレームAのコンポーネント内に、外部コンポーネント(つまり、別のフレームのコンテンツペインに属する)をペイントしたいので、それをフレームBと呼びます。

問題は、コンポーネントをペイントすると、フレームAのコンテンツペインにもペイントされることです。また、フレームのサイズを変更すると、ちらつくか、すべてが醜くなります(つまり、コンポーネント内で数回ペイントすると、青い四角がいくつか表示されます。など)。たとえば、ペイントする前に異物を拡大縮小または変換しようとすると、問題がより明確になります。

しばらくして仕分けしたと思います。しかし、私はこの解決策に満足していません。何らかの理由で、より良い解決策、より適切な解決策があるかもしれないと信じています。ここにあなたが必要です。:)

この質問は、コンポーネント内のペイントの前後にダブルバッファリング機能を操作せずに、外部コンポーネントが正しくペイントされない理由を説明するための呼び出しです。たとえば、setDoubleBuffered(false)とsetDoubleBuffered(true)のペア、またはdisableDoubleBuffering(jP)とenableDoubleBuffering(jP)のいずれかを使用します。

それぞれ、外部コンポーネントのペイントメソッドの呼び出しの前後。

前もって感謝します。問題を示すSSCCEを以下に示します。

SSCCEの例とは関係ありません。 以下は問題自体とは関係ありません。 このコードは、印刷プレビュー形式でレンダリングしたいコンポーネントにPrintableを実装する方法を示す目的で使用されます。印刷では、コンポーネントのペイントが呼び出されます(以下を参照)。

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

java - JPanelでのJLabelの再ペイント/更新

実行時に2D配列のJLabelを更新するのに問題があります。

私が取り組んでいるプログラムは、コネクトフォーの変種です。JLabelの2D配列を作成します。これはすべて、デフォルトで空白のスロットの画像を含むImageIconになります。プレーヤー1と2は色を選択し、プレーヤーの順番でクリックしてピースを列にドロップできます(重力によってピースが下に落ちるか、別のピースの上に着地するまで)。

addToColumnメソッドが正常に機能していることを確信しています。私の唯一の問題は、どのJLabelも更新できないように見えることです。これが私が取り組んでいる方法です:

p1、p2、およびcurrentはPlayerオブジェクトです。grid [] []は、0、1、または2に設定された整数の2D配列であり、誰がどのタイルを所有しているかをより簡単に追跡できます。tiles [] []は、JLabelの2D配列です。

最後の2行でtiles[][]のJLabelが変更されているので、明らかに両方は必要ありません。どちらの方法が良いかわかりません...これは私が試したもののほんの一部ですが、役に立ちません。(私のgetColor()メソッドはColorを返し、findColorIcon(Color c)はそのタイルの色で対応するJLabelを返します)。

はい、paintComponentメソッドにも追加しました。

私はしばらくこれに固執していて、私は明白な何かを逃しているように感じます。助言がありますか?