21xrx.com
2024-12-23 01:14:44 Monday
登录
文章检索 我的文章 写文章
Java如何实现关闭窗口功能?——一篇简单易懂的入门教程
2023-06-12 02:21:51 深夜i     --     --
Java 关闭窗口 代码实现

当我们使用Java进行图形界面开发时,经常需要实现关闭窗口的功能。那么Java如何实现关闭窗口功能呢?本文将从以下三个方面进行讲解。

一、使用WindowListener实现关闭窗口功能

WindowListener是Java提供的事件监听器,可以监听窗口状态的变化,其中包括窗口关闭事件。我们可以在窗口关闭事件被触发时,实现关闭窗口的功能。下面是使用WindowListener实现关闭窗口的代码:


import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

public class CloseWindowDemo extends JFrame implements WindowListener {

  public CloseWindowDemo() {

    super("关闭窗口示例");

    setSize(300, 200);

    setLocationRelativeTo(null);

    setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);

    setLayout(new FlowLayout());

    addWindowListener(this);

    JLabel label = new JLabel("欢迎使用本程序!");

    add(label);

    setVisible(true);

  }

  public void windowClosing(WindowEvent e) {

    int option = JOptionPane.showConfirmDialog(this, "确定要退出本程序吗?", "确认", JOptionPane.YES_NO_OPTION);

    if (option == JOptionPane.YES_OPTION) {

      dispose();

      System.exit(0);

    }

  }

  public void windowOpened(WindowEvent e) {}

  public void windowClosed(WindowEvent e) {}

  public void windowActivated(WindowEvent e) {}

  public void windowDeactivated(WindowEvent e) {}

  public void windowIconified(WindowEvent e) {}

  public void windowDeiconified(WindowEvent e) {}

  public static void main(String[] args) {

    new CloseWindowDemo();

  }

}

该代码实现了一个具有关闭窗口功能的窗口,当用户点击关闭窗口按钮时,会弹出确认对话框,询问用户是否确定退出程序。

二、使用WindowAdapter实现关闭窗口功能

WindowAdapter是WindowListener的实现类,实现了WindowListener接口中的所有方法。我们可以通过继承WindowAdapter类,在需要关闭窗口处覆盖windowClosing()方法,实现关闭窗口功能。下面是使用WindowAdapter实现关闭窗口的代码:


import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

public class CloseWindowDemo2 extends JFrame {

  public CloseWindowDemo2() {

    super("关闭窗口示例");

    setSize(300, 200);

    setLocationRelativeTo(null);

    setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);

    setLayout(new FlowLayout());

    addWindowListener(new WindowAdapter() {

      public void windowClosing(WindowEvent e) {

        int option = JOptionPane.showConfirmDialog(CloseWindowDemo2.this, "确定要退出本程序吗?", "确认", JOptionPane.YES_NO_OPTION);

        if (option == JOptionPane.YES_OPTION) {

          dispose();

          System.exit(0);

        }

      }

    });

    JLabel label = new JLabel("欢迎使用本程序!");

    add(label);

    setVisible(true);

  }

  public static void main(String[] args) {

    new CloseWindowDemo2();

  }

}

该代码实现了与前面相同的功能,但使用了WindowAdapter类。

三、使用匿名内部类实现关闭窗口功能

Java中的匿名内部类可以帮助我们更快地实现事件监听器。下面是使用匿名内部类实现关闭窗口的代码:


import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

public class CloseWindowDemo3 extends JFrame {

  public CloseWindowDemo3() {

    super("关闭窗口示例");

    setSize(300, 200);

    setLocationRelativeTo(null);

    setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);

    setLayout(new FlowLayout());

    addWindowListener(new WindowAdapter() {

      public void windowClosing(WindowEvent e) {

        int option = JOptionPane.showConfirmDialog(CloseWindowDemo3.this, "确定要退出本程序吗?", "确认", JOptionPane.YES_NO_OPTION);

        if (option == JOptionPane.YES_OPTION) {

          dispose();

          System.exit(0);

        }

      }

    });

    JLabel label = new JLabel("欢迎使用本程序!");

    add(label);

    setVisible(true);

  }

  public static void main(String[] args) {

    new CloseWindowDemo3();

  }

}

该代码实现了与前面相同的功能,但使用了匿名内部类。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复