問題タブ [jdialog]
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 - Solaris 5.10: タスクバーの JWindow ボタンを非表示にするにはどうすればよいですか?
Java アプリケーションで JWindow オブジェクトを使用して、マウスオーバー ドロップダウン メニューをシミュレートしています。ユーザーが JLabel の上にマウスを置くと、ウィンドウが表示され、マウスがラベルまたは新しく表示されたウィンドウを出るまで表示されたままになります。私の問題は、ユーザーがこのアクションを実行するたびに、画面下部のタスク バーに新しいエントリがタイトルやアイコンなしで表示され、ウィンドウで setVisible(false) が呼び出されるとすぐに消えることです。
装飾のない JDialog に切り替えてみたところ、タスク バーの問題は解決しましたが、新しい問題が発生しました。JDialog で setVisible(true) が呼び出されると、フレームからフォーカスが奪われます。これを示すためにタイトル バーの色が変わります。
装飾されていない JFrame を使用すると、上記の問題の両方が発生しました
インターフェイスを完全に再設計する必要があるため (JDesktopPane 構造に切り替える)、JInternalFrame を使用したくありません。また、JInternalFrame の他の機能も必要ありません。
何か案は?
java - JDialogを閉じて、ウィンドウイベントリスナーに通知するにはどうすればよいですか?
Windowイベントリスナーに引き続き通知されるように、コードを介してJDialogを閉じる方法はありますか?表示をfalseに設定して破棄しようとしましたが、どちらも実行していないようです。
swing - メイン アプリケーション ウィンドウの上に表示される最小化可能な JFrame
私のアプリはダイアログをポップアップします。ユーザーは通常、このダイアログとアプリケーション ウィンドウをしばらくの間、行ったり来たりしたいと考えています。このダイアログを一番上に置いて、メイン アプリケーション ウィンドウの後ろに隠れないようにします。しかし同時に、しばらく必要がない場合に邪魔にならないように、ダイアログに最小化ボタンを付けたいと思います。
これが私が試したことです:
モードレス JDialog を使用します。ダイアログはうまく前面に表示されますが、最小化ボタンがなく、独自のタスクバー ボタンもありません。
JFrame を使用します。ダイアログには最小化ボタンと独自のタスクバー ボタンがありますが、メイン ウィンドウがフォーカスされると、ダイアログはその後ろに隠れます。
JFrame を使用し、ダイアログに WindowListener.windowDeactivated() { this.toFront() } を追加します。これの問題は、 toFront() もフォーカスを設定するため、奇妙なフォーカスのちらつき効果が得られることです。
setAlwaysOnTop で JFrame を使用する - これが最も近い解決策ですが、ウィンドウは私のアプリケーションだけでなく、他のすべてのアプリケーションの上に表示されます。
フォーカスを変更せずに toFront が JFrame を前面に持ってくるだけなら簡単ですが、残念ながらそうではありません。JFrame の Z オーダーを変更する別の方法はありますか?
編集:JDialogを「ロールアップ」する簡単な方法、つまりタスクバーではなく最小化する方法があれば、それも私の問題を解決することに気づきました。
java - 2 つの非モーダル JDialog を表示した後、JMenuItem アクセラレータが機能しませんか? (マックのみ?)
2 つの JDialog を次々に表示した後、JMenuItems のアクセラレータが機能しなくなるという問題があります。
問題を再現するこの小さな例を見てください。
を使用してコンパイルしjavac DialogBug.java
、running で実行しますjava DialogBug
。
「OK」ボタンが 2 つ表示されます。両方のダイアログをクリックして閉じます。ここで「Ctrl-O」を押します。これにより、コンソールに「オープンが実行されました」と出力されるはずですが、これは起こりません。「ファイル」メニューをクリックします。これで、「Ctrl-O」が期待どおりに機能するようになりました。
たとえば、任意の引数を指定してアプリを起動すると、java DialogBug x
ダイアログが 1 つだけ開き、期待どおり、ダイアログを閉じた直後に「Ctrl-O」が機能します。
私の環境は以下です。
しかし、私が知る限り、このアプリは他の VM でも同様に動作します。
私を助けてください!
ここで何がうまくいかないのか、私にはまったくわかりません。これが Java のバグである場合 (そして私はそれがバグであると予想しています)、回避策があれば教えてください...
他のシステムでこれを再現できる、または再現できない場合は、コメントで教えてください。
どうもありがとう!
Update Java 1.5 を Snow Leopard にインストールした
後(ため息)、これが 1.5.0_19 でも発生することを確認できます。少なくとも Snow Leopard ではそうです。
Update 2
Windows XP で動作します。
Update 3
Windows Vista でも動作するようです。これにより、これは Mac OS X 10.5+10.6 の問題になります。
Update 4
このバグは、Apple で問題 ID #7240026 として登録されています。
java - Java Swing:JInternalFrame:ダイアログポップアップが必要
JButtonが押されたときにモーダルダイアログボックスをポップアップする必要があるJInternalFrameウィンドウがあります。最初はJDialogを使用してみましたが、JDialogコンストラクターには次のものが必要であることがわかりました。
- JFrame
- ブールモーダル
JInternalFrameを渡してみましたが、タイプが一致しませんでした。
JInternalFrameでJDialogを使用する必要がありますか?所有者を指定しない場合(つまり、nullを渡す場合)はどうなりますか?何か問題がありますか?
java - ユーザーがJDialogの外をクリックしたときにモーダルJDialogを閉じる方法は?
ユーザーがモーダルダイアログの外側をクリックしたときに setVisible(false) にしたい Undecorated Modal JDialog があります。
これはSwingで可能ですか?
私がやっていることは、日付セレクターのようなテキスト フィールドのカスタム エディターをポップアップすることです。私がやりたいことをもっと簡単に行う方法はありますか?
編集
setVisible(true) の呼び出しでモーダル ブロックが発生することに注意してください。そのため、「モーダル ダイアログを使用しないでください」とだけ言うことはできません。
そして、ダイアログでフォーカスリスナーを試しましたが、モーダル時にトリガーされません。
java - Java Swing:既存のウィンドウの上にダイアログを配置する
JFrameのボタンがクリックされたときにポップアップダイアログを既存のJFrameウィンドウの上に中央揃えで配置する単純なJavaSwingコード/Webリソースを表示できますか?
java - 最小化ボタン付きの JDialog
非モーダル (modal=false) JDialog の最小化ボタンと最大化ボタンを使用することは可能ですか? JFrame がこれに対する理想的なソリューションであることはわかっていますが、この変更は既存のコードで行う必要があり、JDialog から変更するのは少し難しいです。 JFrameに。
java - JDialogs が原因で、OSX でアプリケーションのメニューが消える
JDialogs のいずれかにフォーカスがあるときはいつでも、アプリケーションのメイン メニューに使用できるメニューがツールバーに表示されません (ファイル編集などは表示されません...)。これは JDialogs/Swing に固有の問題ですか、それともダイアログの作成方法に何らかの問題がありますか?