-
Bug
-
Resolution: Duplicate
-
P4
-
None
-
1.4.1
-
x86
-
windows_xp
FULL PRODUCT VERSION :
java version "1.4.1_01"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.1_01-b01)
Java HotSpot(TM) Client VM (build 1.4.1_01-b01, mixed mode)
ADDITIONAL OS VERSION INFORMATION :
Microsoft Windows XP
A DESCRIPTION OF THE PROBLEM :
If the JDialog has a JFrame as a parent, and the dialog also is not modal,
perform following
1. minimize parent frame
2. hide JDialog (from the code)
3. maximaze parent frame
4. hidden JDialog stays be visible
Note: I need to keep the dialog to be not modal
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
please use following code:
public static void main(String[] args) {
JFrame frame = new JFrame();
frame.getContentPane().add(new JPanel());
frame.setSize(new Dimension(400,400));
frame.setDefaultCloseOperatio(WindowConstants.EXIT_ON_CLOSE);
final JDialog waitDialog = new JDialog(frame, "Wait Dialog");
waitDialog.setSize(new Dimension(100,100));
waitDialog.setModal(false);
frame.addWindowListener(new WindowListener(){
public void windowOpened(WindowEvent windowEvent) {
}
public void windowClosing(WindowEvent windowEvent) {
}
public void windowClosed(WindowEvent windowEvent) {
}
public void windowIconified(WindowEvent windowEvent) {
try {
Thread.sleep(5);
waitDialog.hide();
}
catch (InterruptedException ex) {
waitDialog.hide();
}
}
public void windowDeiconified(WindowEvent windowEvent) {
}
public void windowActivated(WindowEvent windowEvent) {
}
public void windowDeactivated(WindowEvent windowEvent) {
}
});
frame.show();
waitDialog.show();
}
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
after frame maximization the dialog should disappear.
ACTUAL -
the dialog doesn't disappear
REPRODUCIBILITY :
This bug can be reproduced always.
---------- BEGIN SOURCE ----------
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Frame1 extends JFrame {
public Frame1() {
}
public static void main(String[] args) {
Frame1 frame = new Frame1();
frame.getContentPane().add(new JPanel());
frame.setSize(new Dimension(400,400));
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
final JDialog waitDialog = new JDialog(frame, "Wait Dialog");
waitDialog.setSize(new Dimension(100,100));
waitDialog.setModal(false);
frame.addWindowListener(new WindowListener(){
public void windowOpened(WindowEvent windowEvent) {
}
public void windowClosing(WindowEvent windowEvent) {
}
public void windowClosed(WindowEvent windowEvent) {
}
public void windowIconified(WindowEvent windowEvent) {
try {
Thread.sleep(5);
waitDialog.hide();
}
catch (InterruptedException ex) {
waitDialog.hide();
}
}
public void windowDeiconified(WindowEvent windowEvent) {
}
public void windowActivated(WindowEvent windowEvent) {
}
public void windowDeactivated(WindowEvent windowEvent) {
}
});
frame.show();
waitDialog.show();
}
}
---------- END SOURCE ----------
java version "1.4.1_01"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.1_01-b01)
Java HotSpot(TM) Client VM (build 1.4.1_01-b01, mixed mode)
ADDITIONAL OS VERSION INFORMATION :
Microsoft Windows XP
A DESCRIPTION OF THE PROBLEM :
If the JDialog has a JFrame as a parent, and the dialog also is not modal,
perform following
1. minimize parent frame
2. hide JDialog (from the code)
3. maximaze parent frame
4. hidden JDialog stays be visible
Note: I need to keep the dialog to be not modal
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
please use following code:
public static void main(String[] args) {
JFrame frame = new JFrame();
frame.getContentPane().add(new JPanel());
frame.setSize(new Dimension(400,400));
frame.setDefaultCloseOperatio(WindowConstants.EXIT_ON_CLOSE);
final JDialog waitDialog = new JDialog(frame, "Wait Dialog");
waitDialog.setSize(new Dimension(100,100));
waitDialog.setModal(false);
frame.addWindowListener(new WindowListener(){
public void windowOpened(WindowEvent windowEvent) {
}
public void windowClosing(WindowEvent windowEvent) {
}
public void windowClosed(WindowEvent windowEvent) {
}
public void windowIconified(WindowEvent windowEvent) {
try {
Thread.sleep(5);
waitDialog.hide();
}
catch (InterruptedException ex) {
waitDialog.hide();
}
}
public void windowDeiconified(WindowEvent windowEvent) {
}
public void windowActivated(WindowEvent windowEvent) {
}
public void windowDeactivated(WindowEvent windowEvent) {
}
});
frame.show();
waitDialog.show();
}
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
after frame maximization the dialog should disappear.
ACTUAL -
the dialog doesn't disappear
REPRODUCIBILITY :
This bug can be reproduced always.
---------- BEGIN SOURCE ----------
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Frame1 extends JFrame {
public Frame1() {
}
public static void main(String[] args) {
Frame1 frame = new Frame1();
frame.getContentPane().add(new JPanel());
frame.setSize(new Dimension(400,400));
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
final JDialog waitDialog = new JDialog(frame, "Wait Dialog");
waitDialog.setSize(new Dimension(100,100));
waitDialog.setModal(false);
frame.addWindowListener(new WindowListener(){
public void windowOpened(WindowEvent windowEvent) {
}
public void windowClosing(WindowEvent windowEvent) {
}
public void windowClosed(WindowEvent windowEvent) {
}
public void windowIconified(WindowEvent windowEvent) {
try {
Thread.sleep(5);
waitDialog.hide();
}
catch (InterruptedException ex) {
waitDialog.hide();
}
}
public void windowDeiconified(WindowEvent windowEvent) {
}
public void windowActivated(WindowEvent windowEvent) {
}
public void windowDeactivated(WindowEvent windowEvent) {
}
});
frame.show();
waitDialog.show();
}
}
---------- END SOURCE ----------
- duplicates
-
JDK-4842599 REGRESSION: JPopupMenu not Hidden Properly After Iconified and Deiconified
-
- Closed
-