問題タブ [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.
java - 2 つの JButton のオーバーラップ: 問題
少し奇妙に聞こえますが、2 つJButtons
(ここjButton1
とjButton2
) をオーバーラップさせようとしています。これには NetBeans GUI ビルダーを使用しています。特別なことは何もありません。JLayeredPane を使用してそれを可能にしています。
重なっていJButton
ますが、マウスでクリックすると上に表示されます。スクリーンショットはそれを明確にします:
(ハイライト部分をマウスポインタとする)
と
マウス ポインターが次のボタンをクリックするとJButton
、最初の JButton が非表示になって表示されます。
しかし、マウスでクリックしたときに2番目がポップアップ(1番目と重なる)したくありません。どうすればこれを行うことができますか??まあ、これは重大になる可能性があると思います。JButton
JButton
必要に応じて、コードは次のとおりです。
アップデート :
よくわからない場合は、もう一度行きます。
1) 別々のボタンを作りたくないので、重ねる必要があります。
2)重なる部分、ボタンの大きさが異なる場合があります。
3) 2 番目の JButton は、クリックされたときに 1 番目の JButton の上に来てはなりません (これに対する解決策ですが、ボタンのレイアウト方法についてではありません)。
4) どのボタンがクリックされたのか混乱するかもしれませんが、私にとっては問題ありません。
java - JLabelのImageIconにマークを付ける
だから私はJavaで画像を変更する方法を見つけようとしています。つまり、ユーザーが画像をクリックすると、ユーザーがクリックした場所にマークが付けられます。JLabelに入れたImageIconがあります。これまでのところ、私が採用したアプローチは、JLayeredPanelを使用して別のJPanelをJLabelの上に配置し、このJPanelを利用することでした。
しかし、この方法はうまくいかないようです。背景画像(ポンド単位の画像)が表示されません。それで、私は私がまったく正しい軌道に乗っているのかどうか疑問に思いましたか?または、これを達成するためのよりクリーンな方法はありますか?
java - JSlider の背景を透明にするにはどうすればよいですか? または JLayeredPane で JComponents を適切にオーバーレイするにはどうすればよいですか?
JProgressBar の上に JSlider を重ねようとしています。2 つのコンポーネントを保持するために JLayeredPane を使用しています。JProgressBar を JLayeredPane に追加してから、JSlider を追加しています。これまでのところ、opaque を false に設定し、paintComponent メソッドをオーバーライドすることで、JSlider を透明にしようとしました。最終的には、スライダー ハンドルが透明になる唯一の部分であり、背景は不透明なままです。JLayeredPane を正しく使用していない可能性がありますが、JLabels を使用したテストはうまくいったようです。JSlider の背景を透明にするにはどうすればよいですか?
ご協力ありがとうございました。あなたの例を通して、私の問題は私が使用している JLayeredPane にあることがわかりました。JSlider の背景を透明にできることは認識していますが、下のレイヤーのコンポーネントを透けて表示することはまだできません。これは私の例です:
}
java - JLayeredPane、背景画像 + 「アイコン」レイヤー
2 つの個別の JPanel (または任意の軽量コンポーネント) を相互に重ね、最終的に直接または JLayeredPane のようなものを介して JPanel 内に埋め込む必要があります。したがって、重量のあるコンポーネントやガラス板はありません。下部の JPanel (BackgroundPanel という名前) は、縦横比を維持し、アルファを使用しながら、背景画像をペイントするか、ビデオを再生します。上部のパネル (CompassPanel と呼ばれる) にはアイコンがあり、ユーザーはアイコンを追加、削除、移動できます (作図ライブラリのように、この機能はこの投稿には直接関係ありません)。JNLP アプリとデプロイメント環境の帯域幅の制約により、多くの外部依存関係を追加できません。ただし、アルファとアスペクト比が維持された背景画像とビデオを処理できる軽量の作図ライブラリを誰かが知っていれば、私はゲームです.
レイアウトマネージャーなしで行くことに関するJAVAチュートリアルを読みました(私が今までやりたかったことではありません、GBLはどこですか!?)が、これらのスケーリング要件と、サイズ変更中などにアイコンが画像の同じ部分にとどまるようにするためです.これを行う別の方法は考えられません。
これがコードです。私はJava 1.7を使用しています。また、これは私の最初のスタック オーバーフローです。優しくしないでください ;-)
java - JLayeredPaneからのJLabelの削除
ある種のアニメーションを保持するレイヤードペインがあります。Jlabel(breakB)を使用して、壊れているブロックの上に壊れているアニメーションを表示しています。ブロックが壊れると問題が発生します。ラベルは消えるはずですが、代わりに表示されたままになります。私は何時間も解決策を探していましたが、何が起こっているのか本当にわかりませんので、助けていただければ幸いです。
java - コンポーネントを他のコンポーネントの上に配置する方法は?
私はJScrollPanel
それ自体が 3 つの内部パネルを含む大きなパネルを含むを持っています。いつでも見られるように(たとえば)パネルを特別な場所に配置したいのですが、ユーザーは好きな場所にスクロールできますが、そのパネルは常に他のコンポーネントの上にあり、移動しません。経由でやろうとしましたが、JLayeredPane
できませんでした。どうすればいいですか?
java - LayeredPane内に2つのBufferedImagesを保存する
各レイヤーに1つずつ、合計2つの画像を含むLayeredPaneを使用しています。私は、画像の位置(画像が置かれているラベルの位置に基づいて)を取得し、下の画像(layeredPane内から下の画像)を保存し、下の画像が下を覆っている場合は上の画像も保存する方法に取り組んでいます。画像(画像の一部にすぎない場合があります)ですが、これに問題があり、正しく機能させる方法が少しわかりません。
私はかなり長い間これに取り組んでいるので、私の既存のコードに関する助けや、これを別の方法でどのようにアプローチすべきかについての考えは私にとって大きな助けになるでしょう。
前もって感謝します。
java - 2 つの JPanel に関する奇妙な問題
2 つの JPanel を上下に含む JLayeredPane を含む JFrame があります。
前面の JPanel は、いくつかのボタンを備えた単純な GridLayout です。
後ろのJPanelは定期的に変えないといけないイメージです。これは基本的にカメラからのスナップであり、1 秒に数回更新する必要があります。
この JPanel に画像を定期的に描画するために、この updateImage メソッドを呼び出しています。
ただし、paintComponent が呼び出されるたびに、前面のパネルが非表示になります。
私はいくつかの異なることを試しましたが、この作業を行うのに最も近いのは、次の呼び出しです。
paintComponent メソッドの一番下にあります。これは機能しますが、恐ろしく遅いです。
他に何ができますか?
ところで、これは JLayeredPane の問題ではありません。他のいくつかのレイアウト マネージャーでこれを試してみましたが、基本的には常に背面のパネルが非表示になります。
ご提案いただきありがとうございます。
java - JLayeredPaneのパネルを透明にする方法は?
4 つのレイヤーが追加された JLayeredPane があります。不透明な 1 つのベース レイヤーと 3 つの「透明な」レイヤー ( setOpaque(false)
)。
問題は、パネルが描画されているにもかかわらず、リフレッシュするたびに灰色が表示されることです。更新が行われていない場合も同じことが起こります。つまり、ベースレイヤーに描画されたものを表示する代わりに、灰色が表示されます。これは、上のレイヤーの1つからのものであると思います. ここに SSCCE があります - これが十分に短いかどうかはわかりませんが、私の問題を示しています。
}
私が犯した基本的な間違いかもしれません。ご協力いただきありがとうございます!