MouseEvents 在 Java 中不起作用: 当我拖动鼠标时什么也没有发生。该程序应该在拖动时进行绘制。
这是主类:
public class GUI {
public static void main(String[] args) {
simpledrawing xx = new simpledrawing();
JFrame x = new JFrame();
x.add(xx,BorderLayout.SOUTH);
x.add(new JLabel("Drag to draw"),BorderLayout.NORTH);
x.setSize(450,450);
x.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
x.setVisible(true);
}
}
这是事件监听器类
public class simpledrawing extends JPanel{
private int pc =0;
private Point[] points = new Point[10000];
public simpledrawing(){
System.out.print("Entered Constructor");
addMouseMotionListener(
new MouseMotionAdapter(){
@Override
public void mouseDragged(MouseEvent e){
System.out.print("Dragging Mouse");
if(pc<points.length){
points[pc] = e.getPoint();
++pc;
repaint();
}
}
});
}
public void paintComponent( Graphics g )
{
super.paintComponent( g );
for( int i=0; i < pc; i++ )
g.fillOval(points[i].x ,points[i].y , 4, 4);
}
最佳答案
public void MouseDragged(MouseEvent e){
Java 区分大小写。方法名称应以小写字符开头:
public void mouseDragged(MouseEvent e){
编辑:
此外,在进行自定义绘制时,您必须重写面板的 getPreferredSize()
方法以返回面板所需的尺寸,否则尺寸为 (0, 0) 并且没有任何内容油漆。
阅读 Swing 教程中关于 Custom Painting 的部分了解更多信息和工作示例。
最后,类名以大写字符开头。遵循 Java 标准,不要制定自己的约定。
关于java - 鼠标事件在 Java 中不起作用 :,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25349719/