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

java - Swing JLayeredPane.getLayer() - ドキュメント エラーまたは実際の副作用?

Swing のJLayeredPaneについて何かを理解しようとしています。誰かがこのクラスを使用したことがある場合は、フィードバックをいただければ幸いです。

getLayer(JComponent c) のドキュメントには次のように記載されています。

JComponent のレイヤ プロパティを取得します。setLayer() のような副作用はありません。(ペイント、追加/削除など) 通常は、インスタンス メソッド getLayer() を使用する必要があります。

これはインスタンス メソッド getLayer() であるため、明らかに間違いがあります (オーバーロードされたバージョンはありません)。

ここで行うべき別の呼び出しが実際にあるのでしょうか、それとも putLayer() からのコピーに熱心すぎる人がいたのでしょうか。

JComponent にレイヤ プロパティを設定します。このメソッドは、setLayer() のような副作用 (ペイント、追加/削除など) を引き起こしません。通常、必要な副作用 (再描画など) を得るには、インスタンス メソッド setLayer() を使用する必要があります。

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

java - mouseDragged イベントの下の DRAG_LAYER に JLabel を追加する方法

私は現在、ドラッグアンドドロップアプリケーションに取り組んでおり、JLayeredPane 内で何が起こっているのかを本当に知りたいのですが、特定のプログラムの動作が得られます...

契約は次のとおりです。

DEFAULT_LAYER にチェス盤を配置しました。
また、移動するときに DRAG_LAYER に追加したい chessPiece もあります。

だけどフェチがある…

このライン使いたい

mouseDragged イベントの下でのみ。

これを行うと、マウスを動かしているうちにチェスの駒が消えて、チェス盤の後ろに隠れてしまいます (?!?)

上記の行を次のように変更すると:

すべてが再び正常になります。

なぜそれが起こっているのですか?

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

java - JLayeredPaneをJPanelに追加する

JLayeredPaneをJPanelに追加してから、画像(JLabelアイコン)とボタンをJLayeredPaneに追加しようとしていますが、どちらも表示されません。ボタンとレイヤードペインなしで画像をテストしたので、それが機能することがわかります。これが私が使用しているコードの一部です。私が見逃している、または間違っていることはありますか?

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

java - Java: Draw Lines on a JMF Lightweight_Rendered Player

I've got a problem: I have a JMF-Videoplayer in my application and I want to draw on it (while the video continues). The Problem I've got is that I use a JLayeredPane where I add the VideoPlayer-Control on Layer.Content_Layer(index 0) and a JPanel (setOpaque(false)) on Layer.Modal_Layer(index 300).

What happens is, when I add the JPanel it is not opaque but I see the drawn lines but not the video. If I add the JPanel before (didn't changed the index of the layer) I add the video-control then I see the video but not the drawn lines.

Has someone an idea why this doesn't work and how I could make it work?

I thought about adding an ActionListener to the video-control-component and evertime the image changes, I take this image and paint it as background on the JPanel but I'm affraid that this will cost me precious time.

My code looks like this:

The videoPlayerPanel is also a JPanel that contains the JLayeredPane... as you can see.

Edit: Okay I put some research into it and found out that

returns a java.awt.Component and such components do not support opacity - maybe that's the reason why I cannot see or only see the drawPanel.

So currently I'm trying to draw directly onto the video-Component by adding it to a customized Panel where i override the paint-method to draw all the lines. Any other ideas?

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

java - ガラス ペインとレイヤード ペインの使用例

ガラス板と層状板の違いについて、私はいつも少し曖昧でした。ガラス ペインは本質的に「ルート ペインの最上層」にすぎないのでしょうか、それとも動作が異なりますか? ガラス ペインの代わりにレイヤード ペインを使用するのはいつですか?

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

java - 描画時のJavaSwingNullPointerException

カスタムJLayeredPaneを使用しています。JLayeredPaneのさまざまなレイヤーに描画する必要のあるシェイプがいくつかあります。

これをテストするために、JPanelを作成し、そのグラフィックスを尋ねます。次に、そのJPanel(グラフィックの準備)にテスト長方形を描画し、JLayeredPaneのpaintComponentメソッドで最終的にすべてを描画します。しかし、これは失敗します(NullPointerException)。

}

JLayeredPane内からそのようなJPanelを利用できないのはなぜですか?paintComponentメソッド内からJLayeredPaneに直接描画できますが、これはJLayeredPaneのデフォルトのパネルにあります。JLayeredPaneに追加されたいくつかのレイヤーを作成して描画する必要があります。

私は何が間違っているのですか?:s

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

java - レイヤードペインへのJTableの追加

JavaのJLayeredPaneにJTableを追加できますか?

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

java - 重量のあるコンポーネント上の透明な背景

問題があります。LayeredPane には 2 つのコンポーネントがあります。重量コンポーネントと、最初のコンポーネントの上に配置される JComponent (またはテキストを描画できるその他のもの) です。JComponent の背景を透明にしたいのですが、背景が黒くなっています。Heavyweight コンポーネントはビデオをレンダリングするコンポーネントで、JComponent はテキストを描画するコンポーネントです。このテキストは透明な背景で印刷する必要があります。

GlassPane を使用しようとしましたが、glassPane のガラス コンテンツが軽量コンポーネントの上に表示され、重量コンポーネントの下に表示されました。

重量コンポーネント (キャンバス) の上にテキストを描画する可能性はありますか?

ps。Canvas のサブクラスである HeavyComponent クラスのオブジェクトを取得したため、ペイント メソッドをオーバーロードできません。

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

java - マウス カーソル JLayeredPane を設定できません

私は、ウェブ上のどこにも答えが見つからない、または見つけられないという問題に直面しています。

JLayeredPane があり、子 Panel が 1 つしかない場合、setCursor() を使用してカーソルを正しく設定できます。カーソルが表示され、すべて問題ありません。しかし、追加の JPanel を JLayeredPane に追加すると、カーソルが表示されなくなりました

たとえば、これは機能します:

しかし、これはしません:

JLayeredPane 内で動作するカスタム カーソルを取得する方法を知っている人

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

java - JavaのJLayeredPaneのレイヤー数に制限はありますか?

ATC用のJavaアプリケーションがあります。GUIを使い始めたところです。まず、メインフレーム、このメインフレーム上、およびの中にラベル(を含む)がJLayeredPane付いたパネルがあります。ImageIconsJLayeredPane

に約4つのパネル(パネルにはラベルがあり、ラベルにはImageIcons)が追加されましたJLayeredPane。5番目のパネルを追加しようとすると、間違ったGUI表示が表示されます。

これは、pnlplane(4レイヤー)を追加する前に取得したものです。

これは私が得るものです(私がpnlplaneを追加しようとすると-5層[問題]):

これは私が持っているべきものです:

より簡単な方法は、フォトショップですべての画像を1つの大きな画像にまとめることです。ただし、他に利用可能な修正があるかどうかを知りたいです。