乙女座で実行されているサービスがあり、ユーザーにプロンプトを表示してフィードバックを得る必要がある場合があります。JDialog クラスを拡張するクラスを作成しました。
public class PPNDialog extends JDialog implements ActionListener, WindowListener{
public PPNDialog(JFrame frame, String title){
super(frame, title, true);
... //rest of dialog initialisation code
}
... //(other methods
}
新しい JFrame を作成し、ダイアログをポップアップする別のクラス:
public class GUIStarter {
JFrame frame;
public GUIStarter(){
this.initialise();
dialog = new PPNDialog(this.frame, "");
dialog.setVisible(true);
}
private void initialise() {
frame = new JFrame();
frame.setBounds(100, 100, 450, 300);
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
}
}
JDialog がポップアップする場合を除いて、すべてが正常に機能し、他のすべてのウィンドウ (他のアプリ) の背後でバックグラウンドで起動します。問題は、JDialog がタスクバー エントリを作成しないため、既存のウィンドウをすべて最小化しない限り、ダイアログが見過ごされることです。これはおとめ座から GUI が開始されるために発生することを理解していますが、フォアグラウンドで開始するように前に出すことができるかどうか疑問に思っていました。JOptionPane を使用すると、同じことが起こることに気付きました。すべての JOptionPane メッセージはバックグラウンドで表示されます。これは、GUI が virgo サービスから開始された場合のみです。GUI をスタンドアロン アプリケーションとして実行する場合、この問題は発生しません。