問題タブ [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 - フレームのサイズ変更後にのみ表示される新しく作成されたグラフィックス オブジェクト
この記事の続きです
JPanel コンポーネントに追加および描画するランダムなサイズのグラフィックスのセットがあります。同じ JPanel に新しい描画オブジェクトを追加するボタンがありますが、ウィンドウのサイズを変更するまで表示されません。この投稿に記載されている EDT 情報を追加し、コンポーネントで repaint() メソッドも呼び出しました。Hovercraftで提案されているように、私はまだ ArrayList を使用していませんが、使用します。私の脳は、私が進むにつれてゆっくりと物事を理解する必要があります。
ありがとうございました。
コードは 2 つのクラスに分かれています。
}
セカンドクラス
java - JFrameにJPanelを設定しますか?
そのため、私はコードをやり直して、ペイントがすべてJFrameではなくJPanelで行われるように取り組んでいます。これにより、非常に必要な画像バッファリングを実行できます。
StackOverflowを精査し、指を生でグーグルで検索しました。正しく設定されていると思いましたが、機能していません。ターミナルに空白の白い画面とエラースクリプトが表示されます。どんな助けでも大歓迎です。これがコードです
エラースクリプト:
スレッド「メイン」の例外java.lang.NullPointerException
java.awt.Container.addImpl(不明なソース)で
java.awt.Container.add(不明なソース)で
RacerDoomで。(RacerDoom.java:46)
RacerDoom.main(RacerDoom.java:232)で
私はただのばかだと確信しており、答えはおそらくエラーメッセージの中指を私に与えているでしょうが、それでも私にはギリシャ語です。しかし(特に?)馬鹿でさえ助けが必要です。
java - BorderLayout を設定し、paintComponent() を呼び出す
私の問題:パネルの周りに丸い角を描くために、メソッドRoundedPanel
を拡張JPanel
してオーバーライドするクラスがあります。を拡張paintComponent()
するクラスを作成しました。MyPanel
RoundedPanel
MyPanel
レイアウトを使用してパネルをFlowLayout
配置すると、丸い境界線が表示されます。パネル上のコンポーネントのサイズを変更して最大スペースを埋めるために、 を に置き換えましFlowLayout
たBorderlayout
。しかし、その後、paintComponent()
メソッドが呼び出されることはなく、丸い境界線は表示されなくなります。
ウィンドウのサイズが変更されたときにコンポーネントが引き伸ばされてスペースを埋める丸みを帯びたパネルを作成する方法を知っている人はいますか? paintComponent()
Borderlayout を使用しているときにメソッドが呼び出されない理由を説明してもらえますか?
前もって感謝します。
コード :
java - パネルが塗装されていないのはなぜですか?
コード
パネルを完全に赤く塗装します。なぜ私はラインを得ないのですか?どうすれば入手できますか?
java - JLayeredPane でカスタム コンポーネントが描画されない
Javaで学校のプロジェクトを作成しています。何をしようとしているのか: GUI の一部として JScrollPane があり、JLayeredPane (「MapPane」としましょう) が含まれています。MapPane には国の地図 (下部) が含まれており、これはアイコン付きの JLabel です。これはうまく機能し、MapPane はスクロール可能で、すべて問題ありません。
ここで、クラス SpatialElement を拡張するカスタム グラフィック要素をさらに追加します。
すべての要素はクラス SpatialElement を拡張します (簡略化):
たとえば、要素 Polygon は (簡略化して) 次のようになります。
したがって、ユーザーが新しいグラフィック要素を追加すると、メソッドaddSpatialElement
が呼び出されます ( 内MapPane
):
コードがシンプルで十分に説明的であることを願っています。問題は、新しく作成されたコンポーネントが MapPane (拡張された JLayeredPane) に追加されても、要素が描画されないことです。最初に、間違った境界 (updateBounds メソッドで計算) が原因であると考えましたが、問題ありません。
MapPane に追加した後に直接呼び出すとelement.repaintComponent(getGraphics())
、要素が描画されますが、MapPane とのやり取り (ウィンドウのサイズ変更など) の後、MapPane が再描画されるため、オブジェクトは再描画されません。
サイズ変更時に MapPane に含まれているすべてのコンポーネントを強制的に再描画する方法は? MapPane のデフォルトの paintComponent メソッドをオーバーライドする必要がありますか (そのため、オブジェクトを繰り返し処理し、それぞれに対して repaintComponent() を呼び出します)。
または、それを行う方法がそれほどトリッキーではない、より良い解決策がありますか?
アドバイスありがとうございます。
java - Javaグラフィックの問題
リスナーを含むJComponentがあります。JComponentで大きな画像を描画し、マウスリスナーがクリックが発生する場所に小さな画像を追加します(いくつかのドットを追加した1つの大きなマップ)。
paintComponentメソッドの外にプログラムで何かを描画するにはどうすればよいですか?
私の問題はこれにあります:
何もしません。repaint()を試しました。
java - Graphicsを使用してJavaで線を描画する
2 点を通る 1 本の線を引く方法の例を次に示します。
ポイントのコンストラクターを渡そうとしていますが、メインで実行しようとすると、paintComponent を呼び出すときに comp に渡すべき値がわかりません
で何を渡す必要がありますか?
java - JPanels の複数のレイヤー。より上のフロントパネルを覆わずにミドルパネルを再塗装したい
ゲームを作っています。これは、他のいくつかの JPanel を含む JPanel で構成されています。ボタン付きの 1 つの下部パネル、ボタン付きの 1 つの上部パネル、通常のゲーム画面であるこれら 2 つのパネルの間に 1 つのパネル、そして上部または下部パネルのボタンをクリックするとスライドインまたはポップアップする複数の SlidingPanes および動的 JPanelまたはゲーム画面のどこかをクリックすることから。
今、ゲーム画面の経路をたどるトラックを描いています。トラックは正常に描画されますが、ボタンをクリックしてスライド ペインを開くたびに、ゲーム画面パネルによって描画され、開くときにちらつき、マウスを重ねるまで表示されません。ゲーム画面の paintComponent メソッドが原因です。再描画メソッドが呼び出されるたびに、ゲーム画面を前面に移動します。これは、スライド ペインまたはその上にポップアップするパネルの背後に配置したい場合に発生します。
paintComponent を使用せずに、ゲーム画面をレイヤーのままにする方法はありますか?
ご不明な点がございましたら、お知らせください。
ありがとうございました
java - JComponentサイズの問題
JComponent
画面に図形を描画するために使用しているサブクラスがあります。コンストラクターで、のXサイズとYサイズの値の半分に設定しようballX
としていますが、間違っていると思います。私はこれをよく調べましたが、救済策を見つけることができません。コードは次のとおりです。これが私の最初の本当のSwing/Graphics2Dベンチャーであることを覚えておいてください。ballY
JComponent
java - Jpanel を拡張する抽象クラスのサブクラスでの Java PaintComponent のサイズと位置
私は単純なチェス ゲームを構築していますが、パネルに図面をペイントしようとして立ち往生しています。
ボードの準備ができており、ボードにはパネルがあります。これらのパネルは 70x70px で、次にやりたいことは、その表面全体を使ってチェスの駒を描くことです。
JPanelを拡張した抽象クラスPpiecesを作りました。
ピースの 1 つはもちろん Pawn です。
Pawn クラスには、ペイント コンポーネントがあります。
これはうまくいかないようです。出力は、高さ = 10px および幅 = 10px を出力します。....しかし、70pxと70pxのはずです。パネルの内側にある 10x10 の正方形の内側に緑色の楕円形が描かれているのもわかります...
私は setSize(70,70) を試しましたが、実際にはうまくいきません... SetPreferredSize も試しましたが、うまくいきませんでした。抽象クラスとサブクラスを本当に維持したい...
@@@ 編集 @@@ setPreferredSize を再度使用して、実際に Jpanel に緑色の円を描画できるようになりました。しかし、使用されている Jpanel の表面全体ではないため、エラーが残ります...上部にギャップが残っています。スクリーンショット: