Как я могу сделать так, чтобы диалоговые окна JOptionPane отображались как задачи на панели задач?
-
23-08-2019 - |
Вопрос
Редактировать:
Вопрос подчиняется горизонтальному правилу;мой собственный ответ предшествует этому.
Основываясь на помощи Оскар Рейес, я разработал это решение:
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 на панели задач.