Java swing关闭父界面,或者多个界面的解决办法

Java swing关闭父界面,或者多个界面的解决办法

转载请注明出处!

最近公司在用swing 写一个客户端。我在写的时候,遇到我从上上个界面跳转到本界面,而要关闭之前的界面!

简单来说 ,A,B,C三个界面,A-->B-->C, 在开启C界面的时候,关闭A,B界面。类似的问题,均可以使用本方法。

解决思路:

1. 将A的当前对象,当作参数传递给C

2.C 定义一个成员变量接受A对象

3. 通过C拿到的A传过来的对象关闭A。

示例:

Class A extends JFrame implements ActionListener{

    private JButton button;

    .....       //省略部分代码

 // 重点来了 : 监听一个按钮,当用户点击A,跳转到B,点击B的按钮又调转到C。现在要在C中关闭AB

@Override
public void actionPerformed(ActionEvent e) {

            if(e.getSource( ) == button) {

                  new B(this)  ; // new B(A  a)  跳转到B界面,并将A的对象传递给B

    }

}

Class B extends JFrame implements ActionListener{

    private JButton button;

    private A a; // 定义成员变量,A的对象的引用

    // B的构造方法

    public B(A a){

            this.a = a; // 将对象传递给 a

    }


@Override
public void actionPerformed(ActionEvent e) {

            if(e.getSource( ) == button) {

                dispose(); // 关闭B

                new C( a );// 将对象传递给C

      }

}

Class C extends JFrame implements ActonListener{

    private A a;

    public C (A a){

        this.a = a; // 拿到A的对象

    }

@Override
public void actionPerformed(ActionEvent e) {

            if(e.getSource( ) == button) {

                // 关闭A 这样就是先了 关闭多个面板

                a.dispose();

      }


}


这里只是提供给大家一个思路,关闭其他界面也可以使用。 传递对象的引用是java中常用手法。


猜你喜欢

转载自blog.csdn.net/javabuilt/article/details/79792597
今日推荐