某空姐视频门名字:JAVA问题:如何在A窗口中操作B窗口的打开和关闭

来源:百度文库 编辑:中科新闻网 时间:2024/04/28 23:48:55
有两个窗口,A和B

想通过A窗口来对B窗口进行打开或关闭,用什么方法呢?

我的想法是这样的:
假如A中有两个按钮,1和2。
按下1时,创建一个窗口B的实例
按下2时,销毁这个实例

我朋友用setVisible这个方法也可以实现
但这不是我想要的结果

麻烦大家

 
 
 
用 dispose 方法(中文文档 => http://shorterlink.com/?ZFU3RA):

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

class C extends JFrame {

    private JFrame newWindow;

    public C( ) {
        setTitle( "A 窗口" );

        JButton createWindow  = new JButton( "   1   " ),
                disposeWindow = new JButton( "   2   " );

        createWindow.addActionListener( new ActionListener( ) {
            public void actionPerformed( ActionEvent ae ) {
                if ( newWindow == null ) {
                    newWindow = new JFrame( "B 窗口(只能通过 A 窗口关闭此窗口)" );
                    newWindow.setDefaultCloseOperation( DO_NOTHING_ON_CLOSE );
                    newWindow.setSize( 400, 100 );
                    newWindow.setLocation( 300, 100 );
                    newWindow.setVisible( true );
                }
            }
        } );

        disposeWindow.addActionListener( new ActionListener( ) {
            public void actionPerformed( ActionEvent ae ) {
                if ( newWindow != null ) {
                    newWindow.dispose( );
                    newWindow = null;
                }
            }
        } );

        Container c = getContentPane( );
        c.setLayout( new FlowLayout( ) );
        c.add( createWindow );
        c.add( disposeWindow );

        pack( );
        setLocation( 300, 300 );
        setDefaultCloseOperation( EXIT_ON_CLOSE );
        setVisible( true );
    }

    public static void main( String[ ] args ) {
        new C( );
    }
}