問題タブ [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 に答える
1686 参照

java - JToggleButtonとJPanelをJTableセルに配置する

いくつかのJLabelを含むJPanelを含むJToggleButton(カスタム背景を持つ)が必要です。その部分は機能します。

このボタンは後でJTableセルに配置され、ユーザーが押すことを目的としています。問題は、2回目のクリックでしかボタンを押せないことです。最初のクリックでフォーカスが最初にJLabelsのあるパネルにジャンプし、その後で実際のボタンにジャンプします。

この問題を解決するためにいくつかのことを試みましたが、同じ問題が解決しません。A)ラベル付きのJPanelをJToggleButton#add()に直接配置します。B)JLayeredPaneを使用して、ボタンとJPanelを異なるレイヤーに配置します。JToggleButtonは制約Integer(-)を取り、JLabelsを含むJPanelが上部に表示されたままになります。

ヒントはありますか?ありがとう

以下は、問題を説明するサンプルコードです。ボタンのクリックは2回目のみ機能します。

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

java - JLayeredPaneとペインティング

異なるレイヤーに2つのJPanelを含むJLayeredPane(レイヤーと呼びます)を持つアプリケーションを書いています。下部にあるJPanelのpaintComponentメソッド(grid_panelと呼びます)をオーバーライドしてグリッドをペイントし、上部にあるpaintComponentメソッド(circuit_panelと呼びます)をオーバーライドして回路をペイントします。

構造の概要は次のとおりです。

grid_panelを静的なままにしておきます。つまり、変更されないため、再描画(最初の再描画を除く)を実行しないようにします。

問題は、circuit_panel.repaint()を呼び出すたびに、grid_panelも再描画されることです。 これは間違いなく効率的ではありません。

これは、JLayeredPaneの熱心なペイント動作によるものだと思います。JLayeredPaneでこの機能を無効にする方法はありますか?

上記の効果をご覧になりたい場合は、小さなデモプログラムを作成しました。

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

java - 最後のinternalFrameの前に追加

私はJavaSwingを使用しています。レイヤードペインのメニューを使用して内部フレームを追加しています。

新しいレイヤー(別の新しい内部フレーム)が追加されるたびに、すべてのフレームの後ろに移動します。新しく追加されたjInternalFrameをjLayredPaneの既存のすべての内部フレームの一番上に移動する方法を教えてください。

ありがとう!

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

java - Java ゲームにドラッグ アンド ドロップを実装する

私は、異なる色の 5 つの画像を持つ 8x8 グリッドであるボード ゲームに取り組んでいます。オブジェクトは、行または列で隣り合っている限りスワップできます。切り替えの結果、3 つ以上のオブジェクトが行または列で同じになる場合、それらは削除されます。切り替えの結果が一致しない場合、切り替えは行われません。オブジェクトが削除されると、ボードが折りたたまれ、削除されたオブジェクトの上に配置されたオブジェクトがその代わりに落下し、新しいオブジェクトが上から落ちてスペースを埋めます。

オブジェクトのドラッグ操作と落下を実装する良い方法を知りたいです。階層化されたペインを使用する必要がありますか?

どんなアイデアでも私を助けます。

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

java - Java Swing ミキシング ペイン

これは初心者の質問のように思えますが、私は長い間 Swing フレームワークに頭を悩ませてきました。

少なくとも 500 ピクセルの正方形の画像 dog.jpg を提供する場合、次のコードは画像をスクロールペインに表示する必要があります。それが何かを表示した場合、私はおそらく絶望して手を上げません。私は何が欠けていますか?

ありがとう!

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

java - JLayeredPanel の分離

階層化されたペイン全体に一連のパネルがあります。sideBar を topBar と tabbedPanel から分離するには、セパレーターが必要です。配置するために 10 ピクセルのバッファーを残しました。残念ながら、おそらく JLayeredPane が原因で、表示できません。

セパレーターの X 位置を定義する方法はありますか? これで解決するはずです。いずれにせよ、これはコードのサンプルで、ほとんどの情報を削除しました。

または、サイドバーと他の 2 つのパネルから定義された分割を取得できる限り、まったく別のソリューションを提供します。既に BorderLayout.WEST を sideBar に適用しようとしましたが、JLayeredPane であるため、エラーが発生します。

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

java - JLayeredPane に追加された後に編集された場合、JLayeredPane のパネルは変更されますか?

を使用して JPanel を JLayeredPane に追加した後

これを追加した後、パネルを変更すると JLayeredPane のパネルも変更されますか?

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

java - JLayeredPane のフォーマットの問題

JLayeredPaneはおそらく信じられないほど単純なことをしているのですが、それに頭を悩ませることができません。私が抱えている問題は、すべてのコンポーネントが一緒にマージされ、順序がないことです。よくわからないので訂正していただけないでしょうか。私がやろうとしている順序は、このようなレイアウトです


出力


label1 (後ろ)
入力 (前)


そしてメインクラス。

お時間をいただきありがとうございます。コードが私のために書かれるとは思っていません。私が欲しいのは、どこが間違っているかについてのヒントだけです。

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

swing - JLayeredPane上の透過的なJLabel

JLayeredPaneに複数のPNG画像を重ねて表示しようとしています。

画像を含むJLabelを生成し、それをJLayeredPaneに追加するための現在のコードは次のとおりです。

そして、createLabelForImage()メソッド:

私が得たのは、オブジェクトが正しく重なっているのに、PNG画像の透明な背景が一種の白灰色に置き換えられていることです。

ImageIconに問題がありますか?JLayeredPaneを使用しますか?たぶん私はlabel.setBakground(sort_of_transparency_code)のようなものまたはそのようなものを設定する必要がありますか?

前もって感謝します :)

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

java - Swingコンポーネントの適切な寸法を取得する

JLayeredPaneを試していました。したがって、次のコードでは、とを作成しましJLayeredPaneJLabel。に追加したレイヤードペインにラベルを追加しましたJPanel。次に、このパネルがJFrameに追加されました。

ここで問題となるのは、ステートメントがない場合label.setBounds(20, 20, 400, 40);、ラベルがレイヤードペインに表示されないことです。これは2つの質問を提起します:

  1. なぜsetBoundsそんなに重要なのですか?
  2. おそらく以前の質問の回答の一部でしたが、境界を設定する前のラベルの初期の高さと幅は0setBoundsでした。これが、重要な理由である可能性があります。その場合、Swingコンポーネントをに追加するときに、Swingコンポーネントの適切な境界をどのように決定できるかを知りたいですJLayeredPane。(境界がコンポーネントの適切なサイズよりも小さい場合、コンポーネントは非表示になります)

編集:最初の質問は、ここでより詳細に以前に回答されました。