java的Frame窗体如何设置鼠标点击关闭图标时关闭窗体

 我来答
ComputerFan99
推荐于2018-02-27
知道答主
回答量:16
采纳率:100%
帮助的人:0
展开全部
每个AWT窗体的右上角都有三个图标,分别控制窗体的最小化、最大化和关闭。最小化和最大化图标的功能是内置的,无需编程实现。而当用户单击关闭图标时,AWT窗体无响应。用户如果要关闭AWT窗体,只能通过任务管理器结束java进程,这显然太麻烦了。因此,必须编程实现关闭图标的功能,而这需要通过捕获窗体事件来实现。

窗体事件是指示窗体状态改变的低级别事件。当打开、关闭、激活、停用、图标化或取消图标化窗体对象时,或者焦点转移到窗体内或移出窗体时,由窗体对象生成此事件。该事件被传递给每一个使用窗体的 addWindowListener 方法注册以接收窗体事件的 WindowListener对象。也就是说,当用户单击窗体的关闭图标时,将产生窗体事件(WindowEvent)。该事件由窗体监听器接口(WindowListener)负责捕获。

捕获窗体事件的步骤是:
(1) 让类实现窗体监听器接口,这将使得该类变成窗体事件监听器;
(2) 向类注册窗体事件监听器;
(3) 实现窗体事件监听器的所有方法。

源代码Calc.java可修改如下:
package calc;

import java.awt.*;
import java.awt.event.*;

public class Calc extends Frame implements WindowListener{

public Calc(){
super(“计算器”);
setSize(200,200);
addWindowListener(this);
}

// 用户单击窗体的关闭图标时调用本方法。
public void windowClosing(WindowEvent e) {
System.exit(0); //终止当前正在运行的 Java 虚拟机,退出系统。
}
public void windowClosed(WindowEvent e) {}

public void windowOpened(WindowEvent e) {}

public void windowIconified(WindowEvent e) {}

public void windowDeiconified(WindowEvent e) {}

public void windowActivated(WindowEvent e) {}

public void windowDeactivated(WindowEvent e) {}

public static void main(String args[]){
new Calc().setVisible(true);
}
}

运行结果:单击窗体的关闭图标,窗体关闭。这说明窗体已具备响应事件的能力。
zh857872
推荐于2016-09-14 · TA获得超过1415个赞
知道小有建树答主
回答量:426
采纳率:100%
帮助的人:299万
展开全部
Java中Frame窗体的关闭按钮默认是不触发事件的,Java在设置之初将绑定事件的动作交由用户来实现,一个用户要想达到点击关闭按钮关闭窗体,则要在代码中添加实体窗口关闭的事件。
Frame实现点击按钮关闭窗体的事件代码如下:
addWindowListener(new WindowAdapter(){
@Override
public void windowClosing(WindowEvent e)
{
System.exit(0);
}});
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
haha812677
2010-07-23 · TA获得超过216个赞
知道小有建树答主
回答量:150
采纳率:0%
帮助的人:90.6万
展开全部
如果是你自己建立的JFrame的话,可以给他加入一个监听事件

例如:

JFrame frame=new JFrame();
frame.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});

这样,你点击关闭时就可以关闭JFrame了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
洪光来了
推荐于2017-11-23 · TA获得超过1695个赞
知道小有建树答主
回答量:409
采纳率:0%
帮助的人:0
展开全部
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

这些问题在java doc上都写得很清楚的
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
随性亻
2015-06-08 · TA获得超过4180个赞
知道小有建树答主
回答量:4622
采纳率:84%
帮助的人:621万
展开全部
JFrame frame=new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
这样就可以关闭窗体了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式