У меня странная проблема с простейшим Java-приложением (протестировано с JDK6, JDK 8), работающим в Windows 7 (32-разрядная версия, пакет обновления 1):
public static void main(String[] args) {
final JFrame frame = new JFrame();
Button b = new Button("show popup");
b.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
JDialog d = new JDialog(frame);
d.setDefaultCloseOperation(WindowConstants.HIDE_ON_CLOSE); // default
// d.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
d.add(new JTextField("Hello everybody. I'm phantom dialog!!!"));
d.setBounds(20, 20, 300, 100);
d.setVisible(true);
}
});
frame.add(b);
frame.setBounds(30, 30, 600, 400);
frame.setVisible(true);
}
Сценарий:
- запустите приложение,
- нажмите кнопку (JDialog открыт),
- Закройте JDialog, но продолжайте работу приложения,
- См.предварительный просмотр приложения на панели задач (см. скриншот):
Обратите внимание, что Windows отображает JDialog, даже если он был закрыт на шаге 3Я знаю, что опция HIDE_ON_CLOSE означает, что setVisible (false) вызывается, когда JDialog закрыт, но вопрос таков:Почему в предварительном просмотре панели задач Windows отображает JDialog, который был закрыт?