Отображать всплывающее окно сообщения в Java?

Я читал о сообщениях JDialogs и JOptionPane, но до сих пор не могу заставить его работать. У меня есть класс GUI, который расширяет JFrame. Все, что я хочу сделать, это иметь всплывающее окно в начале моей программы, которое информирует пользователя о нескольких вещах. В моем основном я создаю следующий графический интерфейс:

GUI g = new GUI();

Сразу после этого я должен был отобразить окно. Я пробовал следующее в основном методе:

JOptionPane.showMessageDialog(g, "work?");
JOptionPane.showMessageDialog(frame, "work?"); //(frame was used in documentation example so I tried it)

Я также попытался добавить всплывающее окно в класс GUI со следующим

JOptionPane.showMessageDialog(this, "work?"); //(I'm not exactly sure what the Frame Owner parameter is supposed to be, unless I'm confusing this with JDialog.)

В любом случае, как мне сделать так, чтобы появилось это окно? Каждый из методов, которые я пробовал, скомпилировался, и ничего не произошло.

public class GUI extends JFrame implements ActionListener{
     private Container background;
     private static buttons etc...
     private static JLabel disp,edisp;
     private static JTextArea info;
     //setting up the GUI for my program, adding action listeners, I can post more if    necessary
}

А то у меня главное где я хочу вызвать всплывающее окно

public static void main(String[] args){
    GUI g = new GUI();
    JOptionPane.showMessageDialog(g,"Work?");
}

person Howcan    schedule 21.01.2014    source источник
comment
У меня работают JOptionPanes, поэтому я не знаю, почему ваши не работают, и я подозреваю, что ваша проблема в коде, который нам не показан. Вы должны создать и опубликовать минимальный работающий пример, чтобы показать нам, что вы имеете в виду.   -  person Hovercraft Full Of Eels    schedule 21.01.2014
comment
Подойдет, дайте мне минуту, чтобы сократить код.   -  person Howcan    schedule 21.01.2014
comment
Родительская ссылка относится к ряду применений: 1- чтобы позволить диалоговому окну визуально ассоциироваться с родителем; 2- Поддержка модального состояния JOptionPane   -  person MadProgrammer    schedule 21.01.2014
comment
Я уверен, что это работает, почему я должен утверждать, что функция просто не работает. Я просто имел в виду, что я сделал что-то не так, и хотел помочь.   -  person Howcan    schedule 21.01.2014
comment
Вам все равно нужно будет показать нам, что вы сделали не так. Эти фрагменты выше бесполезны для нас.   -  person Hovercraft Full Of Eels    schedule 21.01.2014
comment
Я добавил то, что показалось актуальным для проблемы, остальной код запуска программы могу выложить при необходимости.   -  person Howcan    schedule 21.01.2014
comment
Нам не нужны фрагменты кода и остальной код. Опять же, как и в моем первом комментарии, пожалуйста, создайте и опубликуйте минимальный работающий пример. Эта программа будет максимум 40 может 60 строк, не больше, будет работать за нас и покажет нам вашу проблему. Если ссылка не имеет для вас смысла, попросите разъяснений, но, пожалуйста, не игнорируйте ее.   -  person Hovercraft Full Of Eels    schedule 21.01.2014
comment
Мне удалось решить проблему, сделав минимальный работоспособный пример, я до сих пор не совсем уверен, что пошло не так, но спасибо Hovercraft Full of Eels.   -  person Howcan    schedule 21.01.2014
comment
@Howcan: это не редкость. Когда вы вынуждены доводить свою проблему до ее самой простой формы, иногда ответ выпадает. Хорошая сделка и поздравления.   -  person Hovercraft Full Of Eels    schedule 21.01.2014
comment
Кстати, меня немного беспокоит ваше очевидное чрезмерное использование модификатора static в опубликованном вами коде. Надеюсь, это не то, как выглядит ваш реальный код, а просто пример кода, на который мы можем посмотреть.   -  person Hovercraft Full Of Eels    schedule 21.01.2014


Ответы (1)


Убедитесь, что они вызываются ближе к началу, будь то в основном методе или нет. Кроме того, попробуйте просто установить первый параметр как null. Итак, он гласит:

JOptionPane.showMessageDialog(null,"Work?");

Кроме того, не забудьте импортировать его!

person Otanan    schedule 21.01.2014
comment
Первый параметр указывает родительский компонент. если null или если у parentComponent нет Frame, по умолчанию используется Frame docs.oracle.com/javase/7/docs/api/javax/swing/, java.lang.Object) - person Mike Koch; 21.01.2014