好的。
这是第一个窗体。
public class MainGUI extends JFrame {
private static JPanel panel;
private static JButton btn2;
private static JCheckBox chk;
private static MainGUI frame;
public static void main(String[] args) {
createGUI();
}
public static void createGUI() {
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
frame = new MainGUI();
frame.setTitle("window1");
frame.setSize(100,200);
panel = new JPanel();
chk = new JCheckBox("test");
chk.setSelected(true);
btn2 = new JButton("set invisible");
btn2.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
frame.setVisible(false);
CopyOfMainGUI frame2 = new CopyOfMainGUI(frame);
frame2.createGUI();
}
});
FlowLayout layout = new FlowLayout();
layout.setAlignment(0);
panel.setLayout(layout);
panel.add(chk);
frame.add(panel, BorderLayout.CENTER);
frame.add(btn2, BorderLayout.NORTH);
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
}
这是第二个窗体。
public class CopyOfMainGUI extends JFrame {
private static JButton btn;
private CopyOfMainGUI frame2;
private MainGUI frame1;
public CopyOfMainGUI(MainGUI frame){
frame1 = frame;
}
public void createGUI() {
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
frame2 = new CopyOfMainGUI(frame1);
frame2.setTitle("window2");
frame2.setSize(200, 200);
btn = new JButton("set visible");
btn.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
try {frame1.setVisible(true);frame2.setVisible(false);
} catch (HeadlessException e) {e.printStackTrace();}}});
FlowLayout layout = new FlowLayout();layout.setAlignment(0);
frame2.add(btn, BorderLayout.SOUTH);frame2.setVisible(true);} catch (Exception e) {e.printStackTrace();}}}