Java JFrame两个框架同时显示问题

时间:2015-07-01 08:59:15

标签: java swing jframe

我正在制作一个有两帧的程序。当我运行程序时,两个帧同时打开。我希望当我运行程序时, 第一帧打开2秒然后自动隐藏 ,然后第二帧应显示

这是第1帧的代码:

public class Frame1 extends JFrame{

    private JLabel type;
    public Frame1(){    
    super("Frame 1");



    setLayout(null);
    type = new JLabel("This is Frame 1");
    type.setFont(new Font("Tahoma", Font.PLAIN, 51));
    type.setBounds(55, 227, 346, 52);
    add(type);


        setSize(500,600);
        setLocationRelativeTo(null);
        setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
        setResizable(false);

        setVisible(true);

    }
}

第2帧的代码:

public class Frame2 extends JFrame{

    private JLabel text;

        public Frame2(){
        super("Frame 2");
        getContentPane().setLayout(null);
        text = new JLabel("This is Frame 2");
        text.setFont(new Font("Tahoma", Font.PLAIN, 36));
        text.setBounds(10, 66, 244, 52);
        getContentPane().add(text);


        setSize(300,350);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setResizable(false);
        setVisible(true);

    }


}

主:

public class Main {
public static void main(String[] args) {

    Frame1 obj = new Frame1();

    Frame2 obj2 = new Frame2();

}

}

2 个答案:

答案 0 :(得分:1)

obj.setState(JFrame.ICONIFIED); 您可以使用下面的代码来打开第一帧 2秒然后自动隐藏然后第二帧:

public class Main { 

  public static void main(String[] args) {
Frame1 obj = new Frame1();
try {
    Thread.sleep(2000);
    obj.setState(JFrame.ICONIFIED);
} catch (Exception e) {
}
Frame2 obj2 = new Frame2();
  }
 }

答案 1 :(得分:1)

像这样改变你的主要课程......

public class Main {
public static void main(String[] args) {

    Frame1 obj = new Frame1();

    try {
        Thread.sleep(2000);
    } catch (InterruptedException e) {      
        e.printStackTrace();
    }
    obj.setState(obj.ICONIFIED);

    Frame2 obj2 = new Frame2();

}

这将最小化您的第一帧并显示第二帧