import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JButton;
import javax.swing.JFrame;
public class FrameTest {
public static void main(String[] args) {
final JFrame frame1 = new JFrame("Frame1");
final JFrame frame2 = new JFrame("Frame2");
final WindowEventHandler handler = new WindowEventHandler(frame1,
frame2);
final JButton showFrame2 = new JButton("Show Frame 2");
showFrame2.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
frame1.setEnabled(false);
frame2.setVisible(true);
}
});
frame1.setSize(400, 100);
frame2.setSize(400, 100);
frame1.getContentPane().add(showFrame2);
frame2.addWindowListener(handler);
int fx = Toolkit.getDefaultToolkit().getScreenSize().width / 2
- frame1.getSize().width / 2;
int fy1 = Toolkit.getDefaultToolkit().getScreenSize().height / 2
- frame1.getSize().height;
int fy2 = Toolkit.getDefaultToolkit().getScreenSize().height / 2;
frame1.setLocation(fx, fy1);
frame2.setLocation(fx, fy2);
frame1.setVisible(true);
}
}
class WindowEventHandler extends WindowAdapter {
private JFrame frame1;
private JFrame frame2;
public WindowEventHandler(JFrame frame1, JFrame frame2) {
this.frame1 = frame1;
this.frame2 = frame2;
}
public void windowClosing(WindowEvent evt) {
frame1.setEnabled(true);
frame2.setVisible(false);
}
}