java - 鼠标事件在 Java 中不起作用 :

标签 java swing mouseevent

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/

相关文章:

java - GridLayout 上的动画 Sprite

java - 输入不匹配异常?我还是想不通

java - Log4JLoggerAdapter 处的 SLF4J NoSuchMethodError

JAVA 机器人输入挪威字符

java - 由于实体脏度检查,SpringBoot/Hibernate 在只读事务下触发来自 find 存储库方法的更新查询

java - 使用带有 Java swing 组件的循环来摊销贷款。

Java swing改变JPanel图像

java - 单击鼠标绘制矩形 - 不显示

javascript - 触发 'dummy'鼠标滚轮事件

qt - View 中的 MousePressEvent 和 Qt 中的项目