Как я могу сделать диалоги 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()
?
Ответы
Ответ 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 на панели задач.