「java获取指针坐标」如何在Java中处理坐标
今天给各位分享java获取指针坐标的知识,其中也会对如何在Java中处理坐标进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
- 1、java里如何获得鼠标按下时最开始的坐标和松开时的坐标
- 2、java如何获得当前鼠标的坐标
- 3、Java 在服务器获取鼠标坐标异常?
- 4、求救Java 鼠标移动获取坐标问题.
- 5、java 小时钟,怎么理解用数学函数求指针端点坐标
- 6、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中处理坐标的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
发布于:2022-11-26,除非注明,否则均为
原创文章,转载请注明出处。