Я создаю серверную программу, которая получает сокетное соединение от клиента. Когда программа запускает сервер, я хотел бы отобразить диалоговое окно, которое отображает «Ожидание подключения ...», как он ждет. Как только соединение получено, я хотел бы программно закрыть окно. Поскольку я не хочу блокировать выполнение программы, так как она ожидает подключения к сокету, я использовал немодальное диалоговое окно для отображения сообщения. Это работает, за исключением того, что диалоговое окно не отображает текст, который я бы хотел. Заголовок диалога отображается нормально, а панель сообщений - нет. Почему это? Я пробовал несколько разных способов сделать это, включая приведенный ниже код, но все безрезультатно.
public class AboutDialog extends JDialog implements ActionListener
{
public AboutDialog(JFrame parent, String title, String message)
{
super(parent, title, false);
if (parent != null)
{
Dimension parentSize = parent.getSize();
Point p = parent.getLocation();
setLocation(p.x + parentSize.width / 4, p.y + parentSize.height / 4);
}
JPanel messagePane = new JPanel();
messagePane.add(new JLabel(message));
getContentPane().add(messagePane);
setDefaultCloseOperation(DISPOSE_ON_CLOSE);
pack();
setLocationRelativeTo(null);
setVisible(true);
}
public void actionPerformed(ActionEvent e)
{
setVisible(false);
dispose();
}
}
На всякий случай, если мое объяснение не понятно, я передаю "Ожидание соединения ..." в конструктор AboutDialog в качестве параметра сообщения. Спасибо за любое руководство!