問題タブ [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 - 再塗装でガラスが消える
ガラス板で悩んでいます。最初にパネルを表示すると、すべて問題ありません。しかし、コンポーネントを変更する必要があるためにこのパネルを再塗装したい場合(方法createPanel()
)、ガラスパネルが消えます。フレームのサイズを変更すると、再び表示されます。なぜこれが私のパネルのように見えるのか分かりません:
メソッドに1行追加するとcreatePanel()
それは魅力のように機能します。誰かが私にこの振る舞いを説明できますか?
java - GlassPane でアイコンが正しく設定されていません
入力がユーザーからの期待と異なる場合に、textField の背後に警告アイコンを設定するクラスがあります。テキストフィールドの場合、このクラスは完璧に機能しますが、テキストエリアで使用しようとすると、警告アイコンが正しい場所に設定されません。
警告アイコンを設定および削除するクラスは次のとおりです。
textArea の getY() 関数は常に 0 を返しますが、常に 0 を返す理由がわかりません。 クラス ClaxxValidationPane を呼び出すコードは次のとおりです。
したがって、フォーカス リスナは検証を呼び出し、そこで classValidaionPane が呼び出されます。それが呼び出された場合、それはうまくいきません(ただし、textArea のみで、textField ではありません)誰かがこれを手伝ってくれますか?
java - Swing - ガラス ペインの交換と非表示が機能しない - ガラス ペインは表示されたまま
ログインしているユーザーがいない場合にログイン パネルをガラス枠として表示する Swing アプリケーションを構築しようとしています。
ここに問題はありますか?
java - JGraph をガラス板に変換するには?
私はクラスを持っています:public class GraphEditorPane extends JGraph
そして、私はこの「GraphEditorPane」を次のように使用しています:
この「GraphEditorPane」を使用してグラフを描画しています。今私の質問は - この JGraph を Glass Pane に変換して、'GraphEditorPane' が透明になり、その上に描画できるようにする方法はありますか?
java - 明示的な repaint() 呼び出しなしで、paintComponent() が継続的かつ非同期的に呼び出されるのはなぜですか?
したがって、この質問には 2 つの部分があり、関連していると思われますが、ほとんどが抽象的です。簡単に言えば、ここで私がやっていることは次のとおりです。
私はそれにJFrame
とJPanel
とchild
JPanels
それぞれに 3JButtons
を持っています。また、JPanels とボタンをペイントできるようにする (ie ) のJComponent
呼び出しも作成しました。glassPanel
JFrame
myJFrame.setGlassPane(glassPanel)
(1) 基本的に の 3 つのボタンすべてをクリックすることによってトリガーされJPanel
、glassPanel
が に設定されVisible
ます (これは を呼び出すように見えますpaintComponent()
)。これは最初の質問に関連しています。
(2) では、ダブル バッファpaintComponent()
を使用して、長方形と画像を に描画してペイントします。これは2番目の質問に関連しています。glassPanel
関連する GlassPanel クラス コードは次のとおりです (これは今のところ抽象的な質問であるため、SSCCE ではありません)。
System.out.print
paintComponent() メソッド内にステートメントを配置することで、それが継続的に呼び出され、非同期にも呼び出されていることがわかりました。呼び出しがどのように行われると思うかについては、(1) を参照してください。また、コードのどこにも呼び出しがないことを絶対に確信しているとしましょうrepaint()
(何度も何度もチェックしました)。これが最初の質問の基本です。
初めて3つのボタンをクリックすると、すべてスムーズに進みます。四角形と画像は両方ともすぐに描画されます。ただし、次の 3 つのボタンをクリックすると (この時点でglassPanel
はsetVisible(true)
、最初の四角形と画像はまだ画面上にあり、最初の 3 つのボタンの上にペイントされています)、2 番目の四角形と画像は部分的にしか読み込まれません。JFrame
プログラムを実行したEclipseウィンドウから離れてクリックすると、呼び出しの数がpaintComponent()
毎回同じ量だけ急速に増加し、部分的にロードされた画像と長方形がすぐに完全に表示されますバックグラウンドでJFrame
。クリックして JFrame に戻ると、呼び出しの数が再び正確に増加します)。これが 2 番目の質問の基本です。
更新:ここに私が読んだものがあります:
また、GUI が別のウィンドウで覆われ、その後覆われなくなった場合、ペイント システムは、新たに覆われた領域と等しいペイント領域で paintComponent メソッドを呼び出します。
私の質問は次のとおりです。
(1) がpaintComponent()
なしで呼び出されるのはなぜrepaint()
ですか? または、同様の質問で、paintComponent() を呼び出しているのは何ですか?
更新: 少し計算した後、すべてのコンポーネント (すべてのボタンとパネル) によって継続的に呼び出されていると強く信じています。それでも、repaint() の呼び出しはありません...
(2) JFrame ウィンドウからフォーカスを移すまで、画像が部分的に読み込まれるのはなぜですか?
私は多くのことを試したことに注意してください:(a)独自のdoubleBufferを作成し、ダブルバッファを使用しない(主にアニメーション用であることはわかっています)、(b)オーバーライドしてオーバーライドしないpaintComponent()
、(c)画像を描画して描画しない(長方形はまだ読み込みに時間がかかる)、(d) がないことを完全に確認するrepaint()
、(e) を使用する場合と使用しない場合SwingUtilities.invokeLater(new Runnable() {
public void run() { //stuff});
、(f) if
setVisible(true) を 1 回だけ実行するステートメントを実行する。
必要に応じて SSCCE を試してみることもできますが、これらはより抽象的なものだと思います。ありがとう!
c# - WPF 用の Java グラス ペイン (C#.NET)
私は C#.NET で WPF アプリケーションを構築しています。Java のガラス ペインのように、条件が真の場合、ウィンドウをグレー表示して中央に StackPanel を表示したいと考えています。私は自分のアプリケーションを販売する予定なので、別のライセンスを同梱する必要はなく、本当に無料である必要があります。
これを行うためのコードはありますか?
java - ガラス板が表示されるとJava gridbaglayoutの位置が破壊される
私のアプリケーションでは、ローダーに透明なガラス板を使用しています。グラスペインを可視に設定すると、グラスペインの下の jcomponents の位置が破棄されます。
誰か助けてくれませんか?
よろしく
java - レイアウト マネージャーとポジショニング
ComponentListener または別のリスナーを使用せずに、GlassPane の JLabel を JProgressBar からの相対浮動座標に貼り付ける方法
ComponentListener と NullLayout を使用した私の試みの代わりに、内部状態について通知でき、オーバーライドにアクセスできる Standard LayoutManagers に built_in notifiers がありますか
.
SSCCEComponentListener
についてNullLayout