「java获取指针坐标」如何在Java中处理坐标

博主:adminadmin 2022-11-26 14:21:09 58

今天给各位分享java获取指针坐标的知识,其中也会对如何在Java中处理坐标进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

java里如何获得鼠标按下时最开始的坐标和松开时的坐标

@Override

     public void mousePressed(MouseEvent e) {

     int x1 = e.getX();

     int y1 = e.getY();

     System.out.println("按下时的坐标点: x="+x1+",y="+y1);

     }

@Override

public void mouseReleased(MouseEvent e) {

int x2 = e.getX();

int y2 = e.getY();

System.out.println("松开时的坐标点: x="+x2+",y="+y2);

}

java如何获得当前鼠标的坐标

JLabel.setText(String text)可以设置标签的显示文本内容。

MouseEvent(鼠标事件)有两个方法:getX();getY();可以获得mouse的坐标。

定义一个类,implements mouseListener,mouseMotionListener就能ok了

如:

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

public class Mousetracker extends JFrame implements MouseListener,MouseMotionListener //实现两个鼠标事件接口 ,

{

private JLabel statusBar; //定义一个标签

public MouseTracker() //构造方法

{

super("Demonstrating mouse event"); //调用父窗口构造方法

statusBar=new JLabel();

getContentPane().add(statusBar,BorderLayout.SOUTH); //获得上下文面板,并添加组件

addMouseListener(this); //绑定事件监听器,因为本身实现了监听器接口,因此用this,即本身

addMouseMotionListener(this);

setSize(275,100);

setVisible(true);

} //以下是实现鼠标的各种事件,如按下,弹起,拖拽等

public void mouseClicked(MouseEvent event)

{

statuxBar.setText("clicked at ["+event.getX()+

","+event.getY()+"]");

}

public void mousePressed(MouseEvent event)

{

statusBar.setText("Pressed at["+event.getX()+

","+event.getY()+"]");

}

public void mouseReleased(Mouseevent event)

{

statusBar.setText("Relessed at["+event.getX()+

","+event.getY()+"]");

}

public void mouseDragged(Mouseevent event)

{

statusBar.setText("Dragged at["+event.getX()+

","+event.getY()+"]");

}

public void mouseMoved(Mouseevent event)

{

statusBar.setText("Moved at["+event.getX()+

","+event.getY()+"]");

}

public static void main(String args[])

{

MouseTracker application=new MouseTracker();

application.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //设置用户在此窗体上发起 "close" 时默认执行的操作

}

}

Java 在服务器获取鼠标坐标异常?

鼠标位置是和用户的会话相关的,服务器本身不需要界面就可以运行,所以服务器上鼠标出问题是很正常的

如果你想实现自动化,建议用powershell或者bash这种脚本语言,而不是靠带gui的应用

求救Java 鼠标移动获取坐标问题.

class InputStatus{

int mouseX;

int mouseY;

}

InputStatus inputStatus=new InputStatus();

private final MouseMotionListener mouseMotionListener = new MouseMotionListener() {

public void mouseMoved(MouseEvent e) {

synchronized (inputStatus) {

inputStatus.mouseX = e.getX();

inputStatus.mouseY = e.getY();

}

}

public void mouseDragged(MouseEvent e) {

synchronized (inputStatus) {

inputStatus.mouseX = e.getX();

inputStatus.mouseY = e.getY();

}

}

};

然后把mouseMotionListener给add到你的窗口或者控件上就行。

InputStatus是自己写的内部类,用于存放鼠标的位置,这样在其他地方就可以用inputStatus.mouseX和inputStatus.mouseY来取了。synchronized是为了万一你取坐标的代码在其他线程里(你那个线程也要synchronized (inputStatus)),可以确保每次mouseX和mouseY是成对写入和成对读出的。

当然如果你是单线程的应用的话,可以不要synchronize,然后去掉inputStatus相关的代码,类的成员变量这么写

int mouseX,mouseY;

然后处理函数这么写

public void mouseDragged(MouseEvent e) {

mouseX = e.getX();

mouseY = e.getY();

}

这样比较简单

java 小时钟,怎么理解用数学函数求指针端点坐标

角度deg转弧度rad的方法如下

rad = deg/ 180.0 * 3.1415926;

java里封装好的方法是

rad=Math.toRadians(deg);

已知 圆心是 x,y ,半径是r ,弧度是rad 根据弧度计算圆周上点的坐标的方法

如果是正东方向,作为0度 起点,计算公式如下

double x1 = x + cos(rad)*r;

double y1 = y + sin(rad)*r;

如果是正北方向,作为0度的起点, 计算公式如下

[*说明,时钟就是以正北方向作为0度起点来计算度数的]

第一种写法

double x1 = x + sin(rad)*r;

double y1 = y - cos(rad)*r;

第二种写法

double x1 = x + sin(rad)*r;

double y1 = y + cos(rad+3.14159265358979323846)*r;

但是明显第一种写法更优雅一点 .

所以下面的代码,就可以简化修改

    hx=r1*Math.sin(hdeg)+x;

    hy=r1*Math.cos(hdeg+Math.PI)+y;  

    mx=r2*Math.sin(mdeg)+x;  

    my=r2*Math.cos(mdeg+Math.PI)+y;  

    sx=r3*Math.sin(sdeg)+x;   

    sy=r3*Math.cos(sdeg+Math.PI)+y;

建议修改成

hx = x + r1 * Math.sin(hdeg);

hy = y - r1 * Math.cos(hdeg);

mx = x + r2 * Math.sin(mdeg);

my = y - r2 * Math.cos(mdeg);

sx = x + r3 * Math.sin(sdeg);

sy = y - r3 * Math.cos(sdeg);

其他细节:

时钟的效果有严重的锯齿现象, 如下图

修改paintComponent 方法即可

public void paintComponent(Graphics g) {

super.paintComponent(g);

// 把g转成g2d对象

Graphics2D g2d = (Graphics2D) g;

//消除图像锯齿

g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);

//消除文本锯齿

g2d.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON);

//设置字体格式

g2d.setFont(new Font("宋体",Font.BOLD,18));

//开始绘制

g2d.clearRect(0, 0, 500, 500);

g2d.drawString("我的简易时钟", 210, 50);

g2d.drawString("12", 245, 135);

g2d.drawString("3", 355, 250);

g2d.drawString("6", 245, 365);

g2d.drawString("9", 125, 250);

g2d.drawOval(120, 120, 250, 250);

g2d.drawLine(x, y, (int) hx, (int) hy);

g2d.drawLine(x, y, (int) mx, (int) my);

g2d.drawLine(x, y, (int) sx, (int) sy);

}

java获取鼠标坐标

//你运行一下,看在你的电脑上能不能用。

//不能用的话肯定是坐标不对

//把mouseMoved方法里的注释去掉重新获取

import java.awt.Dimension;

import java.awt.MouseInfo;

import java.awt.Point;

import java.awt.Robot;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.event.MouseEvent;

import java.awt.event.MouseMotionListener;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.WindowConstants;

public class MouseHelp extends javax.swing.JPanel implements MouseMotionListener {

private JButton textButton;

Robot robot;

/**

* Auto-generated main method to display this

* JPanel inside a new JFrame.

*/

public static void main(String[] args) {

JFrame frame = new JFrame();

frame.getContentPane().add(new MouseHelp());

frame.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);

frame.pack();

frame.setVisible(true);

}

public MouseHelp() {

super();

initGUI();

}

private void initGUI() {

try {

robot=new Robot();

addMouseMotionListener(this);

setPreferredSize(new Dimension(400, 300));

this.setLayout(null);

{

textButton = new JButton();

this.add(textButton);

textButton.setText("\u8fd0 \u884c");

textButton.setBounds(136, 72, 127, 22);

textButton.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e) {

robot.mouseMove(30,745);

try {

Thread.sleep(1000);

robot.mousePress(MouseEvent.BUTTON1_MASK);

robot.mouseRelease(MouseEvent.BUTTON1_MASK);

Thread.sleep(1000);

robot.mouseMove(150,481);

robot.mousePress(MouseEvent.BUTTON1_MASK);

robot.mouseRelease(MouseEvent.BUTTON1_MASK);

} catch (InterruptedException e1) {

// TODO Auto-generated catch block

e1.printStackTrace();

}

}});

}

} catch (Exception e) {

e.printStackTrace();

}

}

public void mouseDragged(MouseEvent e) {

// TODO Auto-generated method stub

}

public void mouseMoved(MouseEvent e) {

// TODO Auto-generated method stub

//从这里获取鼠标的全局坐标

//Point mousepoint = MouseInfo.getPointerInfo().getLocation();

//System.out.println(mousepoint.x+"\t"+mousepoint.y);

}

}

关于java获取指针坐标和如何在Java中处理坐标的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

The End

发布于:2022-11-26,除非注明,否则均为首码项目网原创文章,转载请注明出处。