java如何关闭JFrame

packageapplet;importjava.awt.*;importjava.awt.event.*;publicclassApp20_1extendsFramei... package applet;
import java.awt.*;
import java.awt.event.*;
public class App20_1 extends Frame implements ActionListener
{
static App20_1 frm=new App20_1();
static Button btn=new Button("Draw");
public static void main(String args[])
{
BorderLayout br=new BorderLayout();
frm.setTitle("drawing example");
frm.setLayout(br);
frm.setSize(200,150);frm.add(btn,br.SOUTH);
btn.addActionListener(frm);
frm.setVisible(true);
}
public void actionPerformed(ActionEvent e)
{
Graphics g=getGraphics();
g.drawRect(100,50,70,55);
}

}
问题:
1,在Eclipse下运行后,点击窗体关闭按钮不能关闭.
2,static App20_1 frm=new App20_1();
static Button btn=new Button("Draw");
这两句为什么设置变量为static静态变量?
在开始的地方增加 import javax.swing.*;后把此句public class App20_1 extends Frame implements ActionListener中的Frame改为JFrame后执行,为什么点击两次才能显示结果?请再给指点一下吧。谢谢了。
展开
 我来答
死后是好人
推荐于2017-09-23 · TA获得超过2638个赞
知道小有建树答主
回答量:628
采纳率:0%
帮助的人:959万
展开全部
1、你没有为窗口添加窗口事件侦听
2、这两个变量要在你的main方法里调用,你的main方法是静态的,静态方法只能使用静态变量,所以要将这两个变量设置成静态的
frm.addWindowListener(new WindowListener(){
@Override
public void windowActivated(WindowEvent e) {
// TODO Auto-generated method stub
}
@Override
public void windowClosed(WindowEvent e) {
// TODO Auto-generated method stub
}
@Override
public void windowClosing(WindowEvent e) {
// TODO Auto-generated method stub
}
@Override
public void windowDeactivated(WindowEvent e) {
// TODO Auto-generated method stub
}
@Override
public void windowDeiconified(WindowEvent e) {
// TODO Auto-generated method stub
}
@Override
public void windowIconified(WindowEvent e) {
// TODO Auto-generated method stub
}
@Override
public void windowOpened(WindowEvent e) {
// TODO Auto-generated method stub
}});
貌似低版本jdk需要手动添加窗口事件监听
你在那个close事件里加上关闭程序的代码就行了
wm2008nl
2011-09-22 · 超过71用户采纳过TA的回答
知道小有建树答主
回答量:186
采纳率:0%
帮助的人:180万
展开全部
1,点击关闭按钮退出是:frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
2,只有写成静态的才可以在main方法中调用。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
竺映露
2011-09-22 · TA获得超过257个赞
知道小有建树答主
回答量:714
采纳率:0%
帮助的人:382万
展开全部
试一试XXX.dispose()方法吧!只关闭当前想要关闭的窗口,不影响其他窗口
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Eking2000
2011-09-21 · TA获得超过1228个赞
知道小有建树答主
回答量:1471
采纳率:0%
帮助的人:727万
展开全部
package applet;
import java.awt.*;
import java.awt.event.*;
public class App20_1 extends Frame implements ActionListener
{
public static void main(String args[])
{
App20_1 frm=new App20_1();
Button btn=new Button("Draw");

BorderLayout br=new BorderLayout();
frm.setTitle("drawing example");
frm.setLayout(br);
frm.setSize(200,150);frm.add(btn,br.SOUTH);
btn.addActionListener(frm);
frm.setVisible(true);
}
public void actionPerformed(ActionEvent e)
{
Graphics g=getGraphics();
g.drawRect(100,50,70,55);
}

}
不太清楚的情况下,不要轻易尝试static修饰类型,点击窗口关闭按钮不能关闭时你没有没写关闭的响应代码,添加一个frm.addwindowlistener然后重写里面的关闭代码就可以了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
neptunercn
2012-08-31
知道答主
回答量:1
采纳率:0%
帮助的人:1586
展开全部
调用dispose()方法就可以关闭Jframe窗口
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式