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

StackOverflow https://stackoverflow.com/questions/542844

Вопрос

Редактировать:

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


Основываясь на помощи Оскар Рейес, я разработал это решение:

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+С чтобы скопировать вывод в системный буфер обмена и нажать ЭКУ отклонить заявление.


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

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

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

Решение

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

Нет

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

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

Могу поспорить, что вы можете довольно легко поместить все это в служебный метод и вызывать его, когда вам это нужно, одним вызовом.

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

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 без чего-либо еще (хотя, как вы сказали, я не вижу его на панели задач)

Другие советы

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top