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

java - 静的コンテキストからの非静的メソッド

なぜ私は参照できないのですか?あなたはそれを修正する方法を知っていますか?DDAアルゴリズムで線を引きたいです。助けてください。

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

java - このコードで変数 g を見つける方法は?

このコードで変数 g を見つける方法は? paintComponent から fillRect を使って線を描きたいと思います。助けてください。

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

java - mvcデザインパターンを使用したrepaint()およびpaintComponent()メソッドの呼び出しに関する問題

私は小さなゲームを作成しています。ボタン(上、下、左、右)をクリックして、猫(長方形で表されます)を制御して、マウス(別の長方形で表されます)を追いかけます。Lame私は知っています...とにかく私はmvcデザインパターンを使用していて、2つの長方形が「ペイント」されるパネルのコントローラーのボタンリスナーからrepaintメソッドを呼び出すのに問題があります。彼らは最初はうまくペイントしますが、それ以上はペイントしません。

paintComponent()メソッドを2つの方法で実装しましたが、どちらも機能しませんでした

  1. JPanelを拡張し、paintComponentビジネスを実行する別のクラスを作成し、ビューにそのクラスの新しいオブジェクトを作成し、それを使用して長方形をペイントします。
  2. JPanelを作成し、新しいJPanelオブジェクトの括弧内にpaintComponentのものを書き込みます。

コントローラーにコードを実装して2つの方法で再描画しましたが、どちらも機能しませんでした

  1. paintComponentメソッドを使用するjpanelを返すビューからメソッドを呼び出し、その上でrepaintを呼び出します。
  2. コントローラでjpanelを作成し、ビューからパネルをそれに割り当ててから、その上でrepaintを呼び出します。

ビューとコントローラーのコード(長いです、申し訳ありません!)は以下のとおりです。これには、2つの方法から前述の問題に取り組むために作業できなかったコメントアウトされたものも含まれています...

/ * * gameView.java * /

パッケージゲーム;

java.awtをインポートします。; java.awt.eventをインポートします。; インポートjavax.swing。*;

パブリッククラスgameViewはJFrameを拡張します{

}

コントローラ

/ * * gameController.java*/パッケージゲーム;

java.awt.eventをインポートします。; javax.swingをインポートします。;

パブリッククラスgameController{

}

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

java - paintcomponent()とpaintcomponents()の違いは何ですか?

paintcomponent()とpaintcomponents()の違いを知りたいですか?

paintcomponentから使用すると、必要なものがすべて表示されますが、paintcomponentsは何もしませんでした。

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

java - paintComponent() が repaint() によって呼び出されないのはなぜですか?

カスタム JComponents を JLayeredPane に描画するプログラムに取り組んできましたが、コンポーネントの repaint() へのすべての呼び出しは何もしていないように見えますが、ウィンドウのサイズが変更されると、paintComponent メソッドが自動的に呼び出されます。

ここで与えられたアドバイスのいくつかに従っています: なぜ paint()/paintComponent() が呼び出されないのですか?

しかし、解決策のどれも私の問題を解決していないようです.EDTでswingコンポーネントを更新し、repaint()を呼び出す前にコンポーネントサイズを手動で設定し、オーバーライドされたpaintComponent()でsuper.paintComponent(g)を呼び出し、フレームでrevalidate()を呼び出します新しいコンポーネントの追加 (ただし、この場合は明らかに問題ではありません)

通話を停止している可能性のあるアイデアはありますか? 前もって感謝します :)

ビューと SVGElementContainer のコードは次のとおりです。view.setFile() は、新しいドキュメントを表示する必要があるときに呼び出されるエントリ ポイントです。

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

java - JPanel Runnable での再描画の問題

曲を再生し、その間に画像を表示するJPanelを持つプログラムを書いています。曲は正常に再生され、最初の画像が描画されます (paintComponent への最初の呼び出しからだと思います) が、どういうわけか repaint() が呼び出されていないようです。私は本当に余分な目を使うことができました。画像を表示する JPanel クラスのコードを以下に示します。本当にありがとう!

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

java - 画像に JButton を配置するにはどうすればよいですか?

背景画像があるJFrameと、いくつかのコマンドを実行する画像JButtonsを修正しようとしています。JFrameの特定の場所に小さなボタンを配置したいので、レイアウトなしでやろうとしましたが、毎回背景画像が前面に来るか、JFrameのサイズがJFrameのサイズと同じです。次のコードでは、JButton は JFrame と同じサイズになります。JButton のサイズと位置を変更しようとしましたが、何もしませんでした。助けてください。

ここにコードがあります

// label();

test = displayButton("test"); } public JButton displayButton(String name) { JButton button = new JButton(name); button.setSize(100, 100); button.setPreferredSize(dimension); return button; }

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

java - ペンツールの作成、再描画の問題 - JAVA

マウスリスナーを使用してペンツールを作成しようとしています:

JLabel (imageL) のペイント関数は、マウスのドラッグに基づいて線を描画できる 2 つのポイント セットを受け取ります。唯一の問題は、ドラッグが実行されるたびに、新しいレイヤーに前回のマウス ドラッグで描画された線が含まれないことです。JLabel のペイント機能は次のとおりです。

基本的に私の質問は次のとおりです。新しい行を現在のレイヤーに「追加」するにはどうすればよいですか?

どんな助けでも素晴らしいでしょう、前もって感謝します

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

java - paintComponentの外でペイントする方法は?

paintComponent()メソッド内のすべてを描画しているキャンバスがあります。

paintComponent(内のメソッドを呼び出さずに)外に描画することは可能paintComponentですか?

もしそうなら、どのようにこれを行うのですか?

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

java - gridlayoutの上にテキストまたは画像を描画する

私はテトリスベースのゲームを書いています。GridLayoutを使用して、テトリスのピースが落下する実際のシャフトを表示しています。GridLayoutは小さなJLabelオブジェクトで埋められています。シャフト自体は別のJPanel内のJPanelであり、ゲーム全体を格納および制御するために使用しているパネルです。ゲームが終了したら、「GAME OVER」という単語をグリッドの上に表示し、小さな画像を添えて表示したいと思います。

私のシャフトはShaftPanelのインスタンスであり、JPanelを拡張して(paintComponentをオーバーライドできるように)、ネストされたプライベートクラスです(したがって、より大きなJPanelのプライベートインスタンス変数にアクセスできます)。アクセスする必要のあるプライベートインスタンス変数はブール値のゲームです。これは、ゲームがセッション中の場合はtrueであり、ゲームが終了した場合はfalseに設定されます。ShaftPanelクラスのコードは次のとおりです。

}

より大きなクラスに、適切なタイミングでシャフトのrepaint()メソッドを呼び出すメソッドが1つあります。printステートメントを追加すると、必要なときにpaintComponentメソッドが呼び出され、setColor、setFont、drawCharsメソッドがすべて正しいタイミングで呼び出されていることがわかります。ただし、何も表示されません。テキストがJLabelsのグリッドの下に描画されているために表示されていない可能性が高いのですが、この問題を解決する方法がわかりません。プログラムは異なる色であることに依存しているため、グリッド内のJLabelは不透明のままにする必要があります。パネル内の他のものの上にテキストを描画するようにpaintComponentに指示する方法はありますか?