18

編集:

質問は水平ルールに従います。私自身の答えがそれに先行します。


Oscar Reyesの助けに基づいて、このソリューションを作成しました。

import javax.swing.JOptionPane;
import javax.swing.JFrame;

public class MyApp extends JFrame {
    public static void main(String [] args) {
        new MyApp();
    }

    public MyApp() {
        super("MyApp");
        setUndecorated(true);
        setVisible(true);
        setLocationRelativeTo(null);
        String i = JOptionPane.showInputDialog(this, "Enter your name:", getTitle(), JOptionPane.QUESTION_MESSAGE);
        if(null != i) {
            JOptionPane.showInputDialog(this, "Your name is:", getTitle(), JOptionPane.INFORMATION_MESSAGE, null, null, i.concat(i));
        }
        dispose();
    }
}

出力を JOptionPane.showInputDialog にも表示していることに注意してください。このようにして出力がテキスト フィールドで強調表示されるので、単にCTRL+Cを押して出力をシステムのクリップボードにコピーし、 を押しESCてアプリケーションを閉じることができます。


簡単なアプリケーション用に簡単な GUI を作成しました。私のアプリケーションは、 で単一の入力を要求しJOptionPane.showInputDialog、計算を実行してから、 で単一の出力を表示しますJOptionPane.showMessageDialog。ときどき、最大化されたブラウザ ウィンドウなどに切り替えてコピーした後、JOptionPane ダイアログに戻って貼り付けたいと思うことがあります。

JOptionPane ダイアログをタスクバーのタスクとして表示して、他のほとんどの実行中のプログラムと同じように切り替えることができるようにしたいと考えています。私は、JFrame、FlowLayout、Icon、JTextField、JButton、ActionListener などを作成するよりも、JOptionPane の単純さを好みます。

  • JOptionPane はタスクバーにタスクとして表示できますか?
  • もしそうなら、どうすれば表示されますか?
  • そうでない場合、ワンライナーのようなものは他にありJOptionPane.show[whatever]dialog()ますか?
4

2 に答える 2

23
  • JOptionPane はタスクバーにタスクとして表示できますか?

いいえ

  • そうでない場合、JOptionPane.show[whatever]dialog() のようなワンライナーのものは他にありますか?

正確に1つのライナーではありません(ただし、いくつかの余分な6行:P)

これらすべてを非常に簡単なユーティリティ メソッドに入れ、必要なときに 1 回の呼び出しで呼び出すことができるに違いありません。

次のコードは、アプリのタスク バーを追加します。

import javax.swing.JFrame;
import javax.swing.JOptionPane;

public class OptionTest { 
    public static void main ( String [] args ) { 

        JFrame frame = new JFrame("My dialog asks....");

        frame.setUndecorated( true );
        frame.setVisible( true );
        frame.setLocationRelativeTo( null );


        String message = JOptionPane.showInputDialog(frame,
            "Would this be enough?.", 
            "My dialog asks....", 
            JOptionPane.INFORMATION_MESSAGE);

        System.out.println( "Got " + message );

        frame.dispose();
    }
}

ちなみに、Windows Vista では Alt+Tab で OptionPane に切り替えることができます。

于 2009-02-12T20:05:49.110 に答える
1

この質問はプラットフォームに依存します。私のシステム、OpenBox を搭載した Debian Linux では、JOptionPanes が常にタスクバーに表示されます。JDialog がタスクバーに表示されないようにすることはできません。

于 2011-10-16T08:34:42.203 に答える