問題タブ [jlayeredpane]

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 投票する
2 に答える
1056 参照

java - 透明なレイヤーを持つ JLayeredPane により、正しく描画されない

2 つのレイヤーを持つ JLayeredPane があります。トップ レベルは完全に透明で、マウス イベントをキャプチャしてその下のペインにディスパッチするガラス ペインとして機能します。理由は不明ですが、一番下のレイヤーが正しく描画されません。ペイントイベントをそれにディスパッチする必要がありますか?

ちなみに、フレームのガラス板を使いたいのですが、手に入りません。Swing の上に構築された GUI フレームワークによって提供される JPanel の使用に行き詰まっています。SwingUtilities を使用して親フレームを取得しようとしましたが、常に null が返されます。

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

java - JLayeredPane のレイヤーのサイズ変更

を使用して独自のチェス ゲームを作ろうとしているときに問題が発生しJLayeredPaneました。

私はこれまでに得ました:

サイドパネルなし

(うまくいけばG6、どのブロックが選択されたかを示すラベルに緑の境界線が表示されます)

しかしSidePanel、パネルに 2 を追加してから、各ボードブロックを正確にカバーするラベルChessBoard上に別のレイヤーにすると、そうではありません:

サイドパネル付き

ご覧のとおり、ブロックを囲む緑色の境界線G2がオフになっています。

SidePanels を にChessBoard追加して最下層に追加し、そのサイズを 600x600 に設定してから、ブロックにChessBoard正確に収まるラベルである最上層と緑の境界線を追加すると、明らかに絞り込まれました。選択されたJLabel(および下のChessBoard四角 [黒または白])の周りに描画されます。SidePanelこれは、チェス盤の実際のサイズを 600x600 に縮小した s により、中心から外れて描画されます。現在は600-sp1.getWidth()xになります600-sp2.getHeight()。それを補うために最上位レイヤーの境界と優先サイズを設定しようとしましたが、役に立たないようです。どんな助けでも感謝します:

ChessBoardTest.java:

SidePanel.java:

ChessBoard.java:

ChessPieceLayer.java:

PiecePanel.java:

ChessPieceMouseListener.java:

最初に私が使用した:

それから私は試しました:     

しかし結果は変わらない

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

java - スイングを使用したアニメーション パイプライン

アプリケーションの描画を最適化しようとしています。現在、アニメーションといくつかの GUI コンポーネントを実装しています。正確に分離されているものもあれば、重なり合っているものもあります。現在、スイング コンポーネントのオーバーラップ内で問題に直面しています。私のアニメーションと重なる GUI の一部は、多くの文字列を描画する必要があります。

その結果、オーバーラップする GUI は、アニメーションが更新されるたびに再描画されます。お互いの前に描かれているものを確認するために、かなり多くの異なる方法を使用してみました。GlassPane、Jlayeredpane など。残念なことに、これらの試行のいずれにおいても、ユーザーが操作するときにのみ呼び出される必要がある重複する Menus paintcomponent メソッドが、アニメーションのために頻繁に呼び出され、CPU 使用率が非常に高くなります。

レイヤーペイン内でメニューを下位に配置しようとしました。つまり、次のようになります。

ペインターのペイントプロセス中に、領域を変更しようとしました-つまり:

さて - ペインター コンポーネントが !isOpague(); になるとすぐに その下にあるすべてのコンポーネントが再描画されます。残念ながら、メニューを上位に配置すると、アニメーションの更新で再描画する必要があります。

オーバーラップするコンポーネントとアニメーション化されたコンポーネントの永久的な再描画を回避する方法を知っている人はいますか?

私が見た唯一の解決策は、重量のあるコンテナーを使用することでした。残念ながら、相対的な位置付けは、目的を移動する際の動作も示しており、これは適切ではありません。

アドバイスありがとうございます!!

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

java - JLayeredPane のコンテンツの自動サイズ変更

JLayeredPane親のサイズに合わせて自動的にスケーリングするアプリを作成しようとしています(これは、フレームのコンテンツ ペインでレイアウト マネージャーとしてJFrame使用する簡単な部分です)。難しい部分は、 のコンテンツを に合わせて自動的にサイズ変更しBorderLayoutたいという事実です(したがっても)。JLayeredPaneJLayeredPaneJFrame

実際、私が実現したい機能は、Netbeans のドッキング可能なコンソールによく似ており、クリックするとエディターの「上」に表示され、閉じると再び非表示になり、ステータスバーの「コンソール」という単語にドッキングします。明らかに、サイズ変更動作が正しく機能することも望んでいます。これを達成するための最良の方法は何ですか(そうでない場合JLayeredPane)?

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

java - 最下層に背景画像を使用した JPanels のレイヤー化

ボードゲームをプログラミングしようとしています。ゲーム ボードの画像を読み込み、その上に透明なグリッドを読み込みたいと考えています。画像を描画するカスタム パネルを作成し、それをレイヤー パネルにレベル 0 としてJPanel追加GridLayoutしました。ちょっと大きい。グリッドの大部分を常に透明にすることを望んでいますが、プレーヤーのピースが正方形に入った場合、その正方形をピースを表す色に設定します。ただし、トップパネルを透明に設定すると(を呼び出してsetOpaque(false))、白い背景が表示され、画像が表示されません。どうしてこれなの?

パネルを作成してネストするメイン プログラムのコードを次に示します。backBoard は外枠です。後で setVisible になるので問題ありません。

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

java - スイングの問題で GUI をプログラミングする

現在、作成中のゲームの GUI を作成しようとしていますが、問題が発生し始めています。なんらかの理由で、メイン ボードのタイマーの背景を青に変更し、gameGUI の背景を緑に変更することができません。これは初めてのスイングでのプログラミングなので、これらすべてに慣れていません。

また、レイヤードペインの使用法が正しいかどうかも疑問に思っています。ボードは、いつでもその上に画像を配置できるように、レイヤード ペインにする必要があります。タイマーは太陽が上にある空になり、雲はある時点でその上を覆います。

あなたが私にヒントを与え、道に沿って私を助けてくれれば、あちこちでいくつかの小さなことを修正するだけでも素晴らしいでしょう.

ありがとうございました。

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

java - スイングゲームのレイアウトの問題

階層化されたペインでゲームを実装する作業を行っていますが、レイアウトの問題が発生しています。何らかの理由で、何も正しく整列しません。フレームの上部に空白ができてしまい、フレームがすべてに合うように正しいサイズに拡張されることはありません。以前に(レイヤードペインなしで)それをやったので、frame.pack()を試しましたが、それもうまくいかないようです。

誰かが私を助けることができれば、私はそれを感謝します. 小さな何かが欠けているような気がします。

0 投票する
0 に答える
424 参照

swing - netbeansドラッグ&ドロップでJLayeredPaneのsetLayoutを使用するには?

JLayeredPane を netbeans のドラッグ & ドロップで使用しようとしています

私はそれのsetLayout&setLayerを(デザインビューで)する必要があります

しかし、setLayoutが見つかりません

setLayoutを手動で(ソースビューで)書くと、

デザインビューでは効果がありません

(よりシンプルにするために、デザインビューでの効果が必要です)

私はこれを行うことができますか?どうやって?

あらゆる種類の助けに感謝します

編集 :

たとえば、Microsoft Office 2007のようなボタンを作成したい..(コーナー(北西)にある)ツールバーと何かの間にあるボタン(おそらくコンテナ)..だから、レイヤードペインを使用してコンポーネントを前面に配置する必要があると思うお互いの..そして、JLayeredPaneのsetLayout効果でnetbeansのドラッグ&ドロップ(デザインビューで)を使用できると、より役立ちます..(多くのコンポーネントをgridbaglayoutで互いの前に配置できるようにしたいだけです)(作成してみてください)かわいいUI)

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

java - JScrollPane内の同じJComponentの上にJLabelを浮かせる方法

JLabel内部には20秒ありJScrollPaneます。上記とJLayeredPane一緒に追加される floatingLabel もあります。JscrollPane

要件は、内部をクリックすると、インデックス 11が完全に表示されるようにJScrollPane自動的にスクロールする必要があることです。また、floatingLabel は、ユーザーがスクロールしたときにその 11 より上でフローティングを開始する必要があります。を参照してください。JLabelJLabelJScrollPaneAdjustmentListener

問題 [編集]: 1. JLabel 11 が完全にまたは部分的に見えなくなることを確認するにはどうすればよいですか?

SSCCE:

解決済みの問題:

  1. クリックしてもJLabel 11が完全に表示されず、半分トリミングされています
  2. クリック時にフローティングパネルの適切な位置を計算できません
  3. スクロール時に新しい位置を計算する方法がわかりません
0 投票する
2 に答える
712 参照

java - JDialogを使用したJLayeredPane

JDialogに追加するときに、JLayeredPaneにコンポーネントを表示できません。

また、これが適度なサイズのコードブロックで実行される可能性があることを示すWebリソースを見つけることができませんでした。すべての視力ivは、これを行うことができる「主張」を見て、それから嫌なほど長い解決策を示します。

私が欲しいのは、JLayeredペインにボタンを追加し、アイコン付きのJLabelをこのペインにも配置することです。英語では、テキストの前にアイコンが付いたボタンが必要です。

システムがスイングJButtonに見えるようにする方法を見つけることができなかったので、それはawtボタンです。

編集:もう少し具体的なことで私を助けてくれませんか。私は自分のポストで漠然としていたと思います。