Java如何实现单击一次鼠标,就在鼠标位置出现一个圆

用JFrame做;

实现重绘repaint方法;

drawCircle方法即可。

例如如下例子:

public class Draw extends JFrame {
 private int x, y;
 boolean isVisible = false;
 public Draw () {
  addHandler();
  setSize(500, 500);
  setLocation(350, 150);
  setVisible(true);
  setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 }
 public static void main(String[] args) {
  new Draw ();
 }
 private void addHandler() {
  addMouseListener(new MouseAdapter() {
   public void mouseClicked(MouseEvent e) {
    if (e.getButton() == MouseEvent.BUTTON1) {
     x = e.getX();
     y = e.getY();
     isVisible = true;
     repaint();
    } else if (e.getButton() == MouseEvent.BUTTON3) {
     isVisible = false;
     repaint();
    }
   }
  });
 }
 public void paint(Graphics g) {
  super.paint(g);
  if(isVisible){
   g.setColor(Color.red);
   g.drawOval(x, y, 100, 100);
  }
 }
}
  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实现在Android设备上使用手指模拟鼠标单击事件,可以在触摸板上监听手指的触摸事件,并根据手指的操作实现鼠标单击事件。 下面是一个简单的示例代码实现: ```java public class TouchpadView extends View { private float x, y; private boolean isClick; public TouchpadView(Context context) { super(context); } @Override public boolean onTouchEvent(MotionEvent event) { switch (event.getAction()) { case MotionEvent.ACTION_DOWN: x = event.getX(); y = event.getY(); isClick = true; break; case MotionEvent.ACTION_MOVE: if (Math.abs(event.getX() - x) > 10 || Math.abs(event.getY() - y) > 10) { isClick = false; } break; case MotionEvent.ACTION_UP: if (isClick) { // 发送鼠标单击事件 sendMouseEvent(MotionEvent.ACTION_DOWN, (int) x, (int) y); sendMouseEvent(MotionEvent.ACTION_UP, (int) x, (int) y); } break; } return true; } private void sendMouseEvent(int action, int x, int y) { long downTime = SystemClock.uptimeMillis(); long eventTime = SystemClock.uptimeMillis(); MotionEvent event = MotionEvent.obtain(downTime, eventTime, action, x, y, 0); dispatchTouchEvent(event); } } ``` 在这个示例中,我们监听了触摸板的`ACTION_DOWN`、`ACTION_MOVE`和`ACTION_UP`事件,并根据手指的操作判断是否触发鼠标单击事件。如果手指在触摸过程中移动超过了一定距离,则不触发单击事件。当手指松开时,如果没有移动过,则发送鼠标单击事件。 注意,这只是一个简单的示例,实际实现中还需要考虑更多的细节,例如多点触控、长按事件等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值