框架正常打开和关闭,但鼠标单击不起作用。
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
//Create a frame window that responds to mouse click
public class AWT3 extends Frame {
String Mmsg="";
int mouseX=0, mouseY=0;
public AWT3() {
addWindowListener(new MyWindowwAdapter(this));
addMouseListener(new MyMouseeAdapter(this));
}
public void paint(Graphics g){
g.drawString(Mmsg, mouseX, mouseY);
}
public static void main(String args[]){
AWT3 awt3 = new AWT3();
awt3.setSize(new dimension(500, 500));
awt3.setTitle("Window framee");
awt3.setVisible(true);
}
}
class MyWindowwAdapter extends WindowAdapter{
AWT3 awt3;
public MyWindowwAdapter(AWT3 awt3) {
this.awt3=awt3;
}
public void windowClosing(WindowEvent we){
awt3.setVisible(false);
}
}
class MyMouseeAdapter extends MouseAdapter{
AWT3 awt3;
public MyMouseeAdapter(AWT3 awt3) {
this.awt3=awt3;
}
public void MouseClicked(MouseEvent me){
awt3.Mmsg="the mouse is clicked";
awt3.mouseX= me.getX();
awt3.mouseY=me.getY();``
awt3.repaint();
}
}
最佳答案
从表面上看,这段代码无法编译。您有一个错误需要修复:
awt3.setSize(new dimension(500, 500));
至
awt3.setSize(new Dimension(500, 500));
并按照其他人指出的那样添加正确的import java.awt.Dimension
。
另一个错误是 MouseClicked(MouseEvent me)
没有覆盖 MouseAdapter
中的父类(super class)方法,因为它的语法错误(父类(super class)方法以小写字母开头)。将其更改为 mouseClicked(MouseEvent me)
(如果您愿意,可以添加可选的 @Override
注释)。
关于java - AWT 框架不处理事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30436736/