Подтвердить что ты не робот

Как я могу сделать диалоги JOptionPane отображаться как задача на панели задач?

Изменить:

Вопрос следует за горизонтальным правилом; мне предшествует мой собственный ответ.


На основе помощи 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, чтобы отклонить приложение.


Я создал тривиальный графический интерфейс для моего тривиального приложения. Мое приложение запрашивает один ввод с JOptionPane.showInputDialog, выполняет вычисление, а затем отображает один вывод с JOptionPane.showMessageDialog. Я иногда переключаюсь в окно с расширенным браузером или что-то еще для копирования, а затем хочу вернуться к моему диалоговому окну JOptionPane, чтобы вставить его.

Я хочу, чтобы мой диалог JOptionPane отображался как задача на панели задач, поэтому я мог переключиться на него, как почти на любую другую запущенную программу. Я предпочитаю простоту JOptionPane, вместо того, чтобы создавать JFrame, FlowLayout, Icon, JTextField, JButton, ActionListener и т.д. И т.д.

  • Может ли JOptionPane отображаться как задача на панели задач?
  • Если да, как мне его показать?
  • Если нет, есть ли что-то еще, что однострочный, например JOptionPane.show[whatever]dialog()?
4b9b3361

Ответ 1

  • Может ли JOptionPane отображаться как задача на панели задач?

Нет

  • Если нет, есть ли еще что-то однострочное, например JOptionPane.show [whatever] dialog()?

Не совсем один лайнер (но некоторые дополнительные 6 строк: P)

Бьюсь об заклад, вы купите все это в режиме utlity довольно легко и назовите его, когда вам это нужно, с помощью одного вызова.

Следующий код добавит панель задач для вашего приложения.

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 я могу переключиться на OptionPane с помощью Alt + Tab без чего-либо еще (хотя я не могу увидеть его на панели задач, как вы сказали)

Ответ 2

Этот вопрос зависит от платформы. В моей системе Debian Linux с OpenBox JOptionPanes всегда отображается на панели задач. Я не могу предотвратить появление JDialog на панели задач.