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) {
}
} 展开
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) {
}
} 展开
展开全部
frm.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
添加窗口监听器,还有推荐使用对应的Adapter比较好,因为实现接口的话要实现所有方法,Adapter实现了对应监听器接口的所有方法,只是方法体内为空,只需要调用需要的方法即可。
@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,类名首字母建议大写
展开全部
在Eclipse里面的Console控制台双击代表正在运行的 红色方块
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
设置窗口关闭事件。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询