【问题标题】:panel exit in javajava中的面板退出
【发布时间】:2011-04-18 19:05:06
【问题描述】:
Frame fr;
...
fr.setDefaultCloseOperation(Frame.???)

我应该写什么而不是“???”关闭框架?

【问题讨论】:

    标签: java swing frame exit


    【解决方案1】:

    我认为你的意思是使用JFrame

    JFrame fr;
    ...
    fr.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    

    对于(旧)AWT 框架,您可以执行以下操作来关闭它:

    final Frame frame = new Frame("Frame test");
    frame.setSize(400, 400);
    frame.addWindowListener(new WindowAdapter() {
        @Override
        public void windowClosing(WindowEvent e) {
            frame.dispose();
        }
    });
    frame.setVisible(true);
    

    【讨论】:

    • @user713744,我猜是因为你提到了setDefaultCloseOperation,这是 AWT 框架所没有的。
    • 添加到问题中的“摇摆”标签只会加剧混乱。
    【解决方案2】:
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    

    有代码示例

    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    
    public class Test {
        JFrame frame;
    
        public Test() {
            JButton button = new JButton("exit");
            button.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent e) {
                    frame.dispose();
                }
            });
            JPanel panel = new JPanel();
            panel.add(button);
            frame = new JFrame();
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            frame.add(panel);
            frame.pack();
            frame.setLocation(200,200);
            frame.setVisible(true);
        }
    
        public static void main(String[] args) {
            new Test();        
        }
    }
    

    【讨论】:

    • 不,java.awt.Frame 没有 setDefaultCloseOperation 方法。
    • @user713744, 关闭框架使用 dispose 方法 - frame.dispose();
    猜你喜欢
    • 2011-10-08
    • 1970-01-01
    • 1970-01-01
    • 2021-02-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-12
    相关资源
    最近更新 更多