JAVA运行的窗口关不上,怎么解决 20

packagerunable;importjava.awt.*;importjavax.swing.*;importjava.awt.event.*;//通过鼠标拖拉可以... package runable;

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

//通过鼠标拖拉可以画一个矩形 并显示坐标
public class myPaint extends Frame implements MouseListener {
static int beginX, beginY, endX, endY;
static myPaint frm;
static Label lab;

public static void main(String[] args) {

frm = new myPaint();
frm.setTitle("myPaint");
frm.setLayout(null);

lab = new Label("矩形位置 ", Label.LEFT);
lab.setBounds(50, 50, 150, 20);
frm.add(lab);

frm.addMouseListener(new myPaint());

frm.setSize(400, 300);
frm.setVisible(true);
}

public void paint(Graphics g) {
g.setColor(Color.red);
g.drawRect(beginX, beginY, endX - beginX, endY - beginY);
}

public void mousePressed(MouseEvent e) {
beginX = e.getX();
beginY = e.getY();
}

public void mouseReleased(MouseEvent e) {
endX = e.getX();
endY = e.getY();
lab.setText("(" + beginX + "," + beginY + ")-(" + endX + "," + endY
+ ")");
frm.repaint();
}

public void mouseClicked(MouseEvent e) {
}

public void mouseEntered(MouseEvent e) {
}

public void mouseExited(MouseEvent e) {
}
}
展开
 我来答
苍穹羽翼kira
2015-01-06
知道答主
回答量:3
采纳率:100%
帮助的人:2.3万
展开全部
frm.addWindowListener(new WindowAdapter() {

@Override
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
添加窗口监听器,还有推荐使用对应的Adapter比较好,因为实现接口的话要实现所有方法,Adapter实现了对应监听器接口的所有方法,只是方法体内为空,只需要调用需要的方法即可。
追问

追答
放在frm.setVisible(true);这行下面,当然不一定是这个地方,只要frm被初始化就可以,而且不要超出main方法,你这样写都到类的外面来了,完全没有类和方法的概念,方法要在类里面
楼上的哥们那方法也可以,不过有些区别
空指针是因为你把frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);这句放在frm = new myPaint();之上,还没有被初始化,frm为空
frm在声明时作为成员变量自动赋值null,还有注意成员变量和局部变量的区别
个人建议你重新学习下Java基础,感觉你的基础极其不扎实,就像从来没学过Java,然后随便拿一段代码放在eclipse里面跑一下看下效果
还有既继承了Frame又实现MouseListener并不会显示你写的代码高端大气,只会显得更凌乱,myPaint这个类到底是Frame还是Listener,虽然可以正常使用,不过不方便阅读。还有myPaint建议写成MyPaint,类名首字母建议大写
无敌鳖
2015-01-06 · TA获得超过185个赞
知道答主
回答量:92
采纳率:67%
帮助的人:26.6万
展开全部
在Eclipse里面的Console控制台双击代表正在运行的 红色方块
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
a470198949
2015-01-06 · TA获得超过359个赞
知道小有建树答主
回答量:592
采纳率:59%
帮助的人:204万
展开全部

在 main 函数里面加上这句代码就行了

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
更多追问追答
追问

有错误   

追答
this 改为 frm ,你就不会看,稍微改一下。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ak461230
2015-10-08 · TA获得超过115个赞
知道小有建树答主
回答量:184
采纳率:60%
帮助的人:71.8万
展开全部
设置窗口关闭事件。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式