有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

如何创建java swing图形对象来响应鼠标点击?

我需要在画布的不同位置动态绘制图形元素(正方形),我需要听鼠标的点击来改变正方形的位置。 如何将鼠标侦听器添加到图形对象?我必须使用另一种方法吗

int x = 0;
int y = 0;
 Graphics g = getGraphics(); // get Graphics context
                  g.setColor(Color.red);
          g.fillRect( x - 25, y - 15, 60, 30 );
          g.setColor(Color.black);
          g.drawRect( x - 25, y - 15, 60, 30 );
                  g.dispose();

共 (1) 个答案

  1. # 1 楼答案

    我可能会使用JPanel作为构成画布的更大组件的子元素。由于JPanel是JComponent的子类,因此它允许您通过^{}添加鼠标侦听器,并重写其^{}()方法

    如果要移动正方形,只需重新定位JPanel即可

    (就此而言,如果它是正方形或长方形,甚至不需要重写paintComponent,只需适当调用setBorder和SetbBackground即可完成。)


    另一种方法是使用JPanel作为整个画布,覆盖paintComponent以绘制任何您喜欢的内容,在JPanel上添加MouseListener,然后手动确定鼠标侦听器事件是否发生在图形元素的几何体中