問題タブ [glasspane]
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 - コンテンツペインとしてのCanvasが、JFrameガラスペインに追加された不透明なコンポーネントをペイントしないのはなぜですか
わかりましたCanvas
(実装できるのでこれを使用していますBufferedStrategy
)。
私はCanvas
自分のJFrame
contentPaneに自分を追加し、それよりも自分のglassPaneHUDPanel
に追加します(これは、ヘルスバーとチャカラバーJPanel
を表示するために、他の2つJPanel
のs(JProgressBar
sとsを含む)で構成されます) 。JLabel
JFrame
HUDのすべてのコンポーネントは不透明です。
ここで、 contentPaneとしてaを使用しHUDPanel
てsglassPaneにを追加すると、コンポーネントを保持する2つのJFrame
sが不透明にペイントされません。Canvas
JPanel
しかし、contentPaneJPanel
に代わりにCanvas
を追加すると、すべて正常に機能します。JFrame
どうしてこれなの?どうすれば修正できますか?
前もって感謝します
HUDPanelTest.java
HUDPanel.java
java - ガラスペインを使用している場合、マウスのサイズ変更カーソルが機能しない
以下の例では、テーブルがあります。テーブルヘッダーの列の端にマウスを合わせると、カーソルがサイズ変更カーソル記号に変わります。ただし、下の行のコメントを解除してガラスペインを表示するように設定すると、カーソルは変更されなくなります。それでも、列のサイズを変更したり、テーブルを操作したりできます(たとえば、テーブルセルを選択するなど)。
ガラス板を使用するときに同じマウスカーソルの動作を維持する方法はありますか?
Java6で動作するソリューションが必要です。
java - 動作していない別のJPanelの上に透明なJPanelを配置する
JTextAreaとボタンを含む別のJPanelの上にJPanelを配置しようとしていますが、上部のapnelを透明にしたいです。上部パネルのsetOpaque(false)を作ってみました。しかし、それは機能していません。誰かが私がこれを乗り越えるのを手伝ってくれる?前もって感謝します!
java - スイング:他のすべてのコンポーネントをペイントし、イベントを保持します
私がやろうとしていること:互いに垂直で、マウスが指している場所に接する垂直線と水平線を描きます。一種のカーソルトラッカー。
私の構造:JFrame->CustomPanel->他のパネル/コンポーネントなど。
CustomPanelはJPanelを継承し、JFrameのContentPaneとして設定されます。
GlassPaneを使用しようとしましたが、すべてが完全に機能しましたが、イベントを無効にするのではなく、保持したいと思います。それでもボタンなどをクリックできるようにしたい。
関連する質問は、Swingのコンポーネントの上にあるこのペイントですか?。CustomPanelの空の場所にマウスを移動すると、すべてが期待どおりに動作しますが、それでも他のコンポーネントの上にペイントされません。
画像では、ボタンの上にペイントを続ける必要がありましたが、ボタンを入力すると停止し、終了すると再開しました。
以下のコード。
と私のアダプター:
java - ガラス板に直接描画する:機能しない
Swingを使用してアプリを開発しています。ユーザーがアプリを操作しているときに、ヘルプデータが画面の閉じたセクションで利用できるようになる場合があります。その場合は、そのセクションを指す小さな矢印を描画したいと思います。
これを行うために、JPanelを拡張し、アプリjframeのガラス板として追加しました。カスタムガラスペインクラスの名前はAlertGlassPaneです。
AlertGlassPaneはこれを行います:新しいヘルプデータが利用可能になるまで待機します。これが発生してヘルプセクションが閉じられると、画面上のヘルプセクションの位置が検出され、その横にアニメーションの矢印が描画されます。
矢印を描画するために、ガラスペインのメソッドpaintComponentを拡張しました。
矢印をアニメーション化するために、100ミリ秒ごとにループする小さなスレッドを作成し、ガラスペインで再ペイントを呼び出しました。
問題:Javaは私の描画を無視します...トリガーがアニメーションの開始をトリガーして静止した場合、何も起こりません。アプリに描画は表示されません。
ループが実行され、paintComponentが呼び出されていることはわかっていますが、カスタムペイントが有効になっていません。
しかし、矢印を表示する領域にマウスを移動すると、表示されます。しかし、マウスが動いているとき。停止するとマウスが移動し、アニメーションも停止し、マウスが停止する(または領域を離れる)前の最後の位置で矢印がフリーズします。
多くのことを試しましたが(たとえば、図面のクリップ領域を設定するなど)、何も機能しないようです。動作するのは、paintComponent内から誤って再ペイントを呼び出したときだけでした。
現時点では、ガラス板のギブム領域を再ペイントする必要があることをレンダリングシステムに伝達する方法を探しています(repaint(x、y、w、h)は機能しませんでした...)。たぶん、カスタムレンダリングをJLabelに移動してから、このラベルをガラス板に追加しますか?私はこのアプローチが好きではありません...
ここにスニペットを投稿する前に、コードをクリーンアップしてみます。それが役立つだろう?
前もって感謝します!
snnipet:
java - 背景を再描画せずに JPanel に描画する
JPanel にきれいなフラクタルを表示するアルゴリズムがあります。ユーザーがマウスをパネル上に置くたびに、フラクタル パネルにグリッド線の「十字線」を表示できるようにしたいと考えています。
私はこれを、次のようなものに描画するための迅速で簡単な方法で達成しました(fractal
フラクタルJPanelの名前です):
図示のように、古い十字線を消去するには repaint() する必要があります。
JPanel の上に移動するには、Glass Pane のようなものに十字線をペイントする必要があると感じていますが、JPanel は Glass Pane を提供していません。ただし、JRootPane は使用できます。代わりにこれを使用できますか?
PS
現在、フラクタルをピクセルごとに小さなLine2D
s でペイントしています。私は最終的にこれを生成するように変更しますBufferedImage
-その場合、この問題は問題になるでしょうか?
java - Java で背景画像と灰色の GlassPane を設定する (Swing)
現在、2 つの Java GUI で苦労しています。
これが状況です: Swing コンポーネントを使用して単語ゲームを設計しています。すべてが配置されるメインの JFrame があります (私の GUI クラスは JFrame を拡張します)。やりたいことは2つあります。
1 つ目:メイン フレームの背景画像として画像を設定したいのですが、すべてのコンポーネントの背後に表示する必要があります。私は周りを検索しましたが、有効な解決策が見つかりませんでした。拡張された BackGroundPanel クラスを作成しようとしましたが、BackGroundPanel のインスタンスを作成するときに、それをフレームの背景にする方法がわかりません...「画像」から画像を読み込む良い方法も見つかりませんでした私のsrcフォルダ内のディレクトリ...
2番目:プログラムが起動すると、装飾されていないJDialogが表示され、メインフレームを無効にする必要があることがわかりましたが、少し暗くしたいと思います。GlassPaneで可能だと思いますが、GlassPaneを設定してパネルを1色で覆う方法がわかりません...
助けていただければ幸いです。共有するのに役立つコードはないと思いますが、上記の状況から一般的なアイデアが得られると思いますか? これをさらに解決できるように、誰かにこれを軌道に乗せてもらいたいだけです! ありがとう!
java - GlassPaneをクリックすると、GlassPaneの背後にあるJPanelを描画します
さて、私は複数のフォーラムとグーグルを調べましたが、私の特定の問題に対する答えを見つけることができませんでした。つまり、2つのパネルを積み重ねて、上の1つはglassPaneです。マウスをglassPaneの周りにドラッグすると、カーソルに赤い縦線が描画されます。これは機能しますが、glassPaneをクリックすると、glassPaneの下のパネルのカーソル位置に黒い線が描画されます。mouseClickを下部パネルにリダイレクトするように取得できますが、線が描画されません。マウスをもう一度動かすまで、赤線が消えるだけです。また、glassPaneを非表示に設定し、下部のパネルをクリックすると、線が描画されるため、描画コードは正常に機能します。前もって感謝します。
メインクラス
GlassPaneクラス
}
リスナークラス(マウスクリックをディスパッチするため)
}
java - ブロッキング ガラス ペインの show メソッドを作成する
ガラス ペインを使用して、JFrame 内にモーダル ダイアログを作成しました。私の表示方法は非常に単純です。アルファ背景を持つガラス ペインとして JPanel を作成し、JLabel と [OK] ボタンと [閉じる] ボタンを追加します。次に、ガラス ペインが設定され、 で表示されますframe.getGlassPane().setVisible(true);
。
すべて正常に動作します。メソッドを呼び出すと、ペインが表示され、[OK] または [キャンセル] をクリックするとガラス ペインが非表示になります。ただし、このメソッドはガラス ペインを表示した直後に戻ります。しかし、メソッドのように動作するようにしたいJOptionPane
: ダイアログが閉じられるまでブロックします。
しかし、show メソッドの最後にビジー待機を挿入しようとするたびに、開くボタンをクリックすると GUI がフリーズします。私もメカニズムを取得しようとしましたJDialog#show()
が、それは私にとって少し複雑です。
では、ガラス ペインが表示されている間に show メソッドをブロックするにはどうすればよいでしょうか。
簡単な例を次に示します。
java - JPanel の新しい非表示レイヤー
助けを求めたいです。私はこのようなものが欲しい: http://docs.oracle.com/javase/tutorial/uiswing/components/rootpane.html#glasspane
このアプリケーションにはマップがあり、新しい非表示レイヤーに小さな画像が必要です。小さな画像は、JSliders で上下に移動できます。そのレイヤーは「ラベル」の上にのみある必要があります。Aはこのコードを持っています:
みんなに感謝します。
うーん ...