問題タブ [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 - JPanels間の描画
私は次のような状況にならなければなりません:
AJPanel
は、他のブロック (Simulink や labView など) との相互接続に使用できる特定の接続ポイントを持つブロックをユーザーが追加できる「描画ボード」として使用されます。
ブロック自体はJPanel
、null レイアウトを設定した後に add() メソッドによって製図板に追加される、ボタンを備えたオブジェクトです。は、JPanels
を使用してドラッグできますMouseMotionListener
。
接続を描画するには、ドローイング ボードpaintComponent()
メソッドをオーバーライドし、g.drawLine() を呼び出します ( を呼び出した後super.paintComponent
)。これは機能しますが、ブロックを移動するとすぐに線が重なり合ってごちゃごちゃになります。したがってdrawingBoard.repaint()
、ユーザーがブロックを移動している間に呼び出します。これにより、ドラッグ中に線がちらつき、すぐに消えるという効果があります。
JPanels
明らかに、親の の描画はJPanel
互いに干渉します。
どうすればこれを解決できますか?
編集:コードの一部のスニペット:
製図板:
JPanel.add() メソッドを使用して、ブロックを製図板に追加します。以下は、そのような「ブロック」JPanel の MouseMotionListener です。
ブロック JPanel は、特別な描画が必要ないため、paintComponent をオーバーライドしません。いくつかの JLabels と JButton が含まれているだけです。ボタンは、ブロック間の接続を作成するために使用されます。接続リストは、上記の drawConnections 内で使用されます。
これ以上のものは本当にありません。
解決済み:
わかりました、予想通り、これは非常に細かい部分でした。
私が使用した線画コードでは
それ以外の
参照が同じではないことに気付きました。ドー
java - Javaの完全に透明なウィンドウでの形状の更新
これまでの他の質問で何かを見つけることができたので、これが私の最初の質問です。ここに私の質問があります:私は2つの部分があるウィンドウを設計しました。左の部分は完全に透明なので、その上にリフレッシュ可能な形を描きたいです。(以下では、形は正方形です。)右側の部分は常に不透明で、形を描くことはありません。すべてOKですが、左側の部分の背景の形状は再利用できません。
----------------------編集(2番目のコード)----------------------- --------------------
java - paintComponent での変数の使用
宿題のために、paintComponent
ユーザーが入力した変数を使用してボックスをペイントしようとしています。固定数を使用して、必要なことを構築することができました。私は一日中これに取り組んできましたが、変数を実装する方法を見つけることができませんでした。ここに私が取り組んでいるものの簡略化されたバージョンがあります:
編集
ここに投稿してから、NewPanel クラス内でセッター メソッドを使用してみました
これを実行すると、これまでに見たことのない奇妙なエラーが発生します。StackOverFlow エラーが発生し、ダイアログ ボックスが数回または数百回ポップアップし、ポップアップが止まりません。
EDIT 3 Hovercraft Full Of Eels ソリューションを使用して、動作するようになりました! Full Of Eels の時間、助け、忍耐に感謝します。
java - PaintComponentメソッドと再ペイント呼び出しを使用せずにJPanelでグラフィックをペイントする
JPanelでグラフィックを描きたいです。現在、私が行っているのは、paintComponentメソッドを使用して図面を定義することです。
次に、グラフィックを配置したい場所でrepaint()を呼び出します。
しかし、このpaintComponentメソッドを使用せずにコンポーネントを追加するのと同じようにグラフィックをJPanelに追加する方法があるのだろうか:panel.add(myComponent)。グラフィックスタイプを開始できないことはわかりましたが、それを可能にする別のタイプがあるかもしれません。
FANG Engineなどの多くのGUIにこのオプションがあることは確かですが、Swingで見たすべての例はこの方法を使用していました。これなしで行うための提案はありますか?それは時々私のプログラムの全体的なデザインを台無しにしているからです。
前もって感謝します。
java - Java JTable に WaterMark を追加する方法
があり、透かしとしてのJTable
後ろに画像を挿入しようとしていますJTable
上記は私のJTable
コードですが、透かしは見えません。後で追加させてください。これJTable
をJScrollPane
andに配置しJSplitPane
ます。
java - 保有データ一覧
私は400ミリ秒ごとにネットワークからfloatデータを受け取り、4つのfloat配列に入れました。これらの配列を別の配列に保存するので、次のようになります。
私のモデルには FloatData オブジェクトのリストがあり、FloatData オブジェクトには次のメソッドがあります。
それは私が望むフロートの配列を返します。この配列は、JPanel に描画するために使用されます。したがって、painComponent で次のことを行います。
私の質問は、400 ミリ秒ごとに更新され、paintComponent メソッドで読み取られるため、listOfFloatData にどのようなリストを使用できるかということです。また、listOfFloatData をモデルからビューに渡す便利な方法を知りたいですか? このリストはいくつかのコンポーネントで使用されるため、listOfFloatData を保持するシングルトン オブジェクトを使用することを考えていましたか? ありがとうございました。
java - JFrame を最大化、最小化、またはサイズ変更すると、円が消えます。
これは私のコードです:
フレームをクリックすると、円が描かれます。フレームを最大化または最小化またはサイズ変更すると、いくつかの円を描いた後、円が消えます。どうすれば解決できますか?
java - JPanelでこのようにグラフを作成することは許容されますか?
を拡張する誰かのクラス内のいくつかの統計データをグラフ化する必要がありますJPanel
。現在の計画では、次のようにクラスpaintComponent
を使用する予定です。Graphics
これはどういうわけかひどいですか?さらに重要なことに、私が使用できるが知らない、素晴らしい、使いやすいグラフ作成ライブラリがいくつかありますか?
ありがとう。
java - Java-グラフィックにpaintComponentを使用し、内部から関数を呼び出しますか?
paintComponent
内で関数がどのように機能するかについてのプログラムフローとは本当に混乱していJPanel
ます。理想的には、Graphicsオブジェクトにアクセスして、プログラムフローに基づいて他の関数からデータを描画したいと考えています。私は次のように考えています:
ここで自分自身を明確にしたことを願っています。Graphicsクラスを好きなように使えるようにしたいと思っています。g.drawRect(...)
現在、私は関数内のようなことしかできませんpaintComponent()
。これは私の目的には役立つかもしれませんが、もっと柔軟性が欲しいです。
ありがとう。
編集-了解しました。外部のGraphicsオブジェクトを参照しようとしてはいけないことを理解しています。しかし、アプリケーションロジックをpaintComponent関数から分離するにはどうすればよいですか?私は次のことをしているので、今このクラスは少し厄介に見えます:
そして基本的に、paintComponent関数は私にとってばかげて長く複雑になっているので、可能な限りそれを分割したいと思います。
java - Java で repaint() を処理する
簡単なスペースシューターを書く予定です。repaint() メソッドは単なるリクエストであり、呼び出されるたびに実行されるわけではないことを読みました。宇宙船を動かしているときに宇宙船がわずかに遅れる傾向があるため、これの影響に気付いていると思います。現在、私は単純に JPanel の paintComponent() メソッドで自分の船を描いており、定期的に repaint() を呼び出し続けています (私のパネルも Runnable です)。repaint() が私を台無しにする可能性があるので、それを回避する方法を見つけようとしていますが、アイデアが不足しています。私がこれまでに持っているコード:
アイデアは、独自のグラフィックを作成し、JPanel に描画させ、run() メソッドで repaint() の代わりにこれを呼び出し続けることでしたが、その方法がわかりません。この件に関するご意見をお待ちしております。