3个回答
展开全部
有的,你可以去继承MouseEvent这个类,里面有个方法叫做,getXOnScreen()和getYOnScreen(),
getXOnScreen
public int getXOnScreen()
返回事件的绝对水平 x 坐标。在虚拟设备多屏幕环境中,桌面区域可以跨越多个物理屏幕设备,这些坐标相对于虚拟坐标系。否则,这些坐标相对于与
Component 的 GraphicsConfiguration 关联的坐标系。
返回:
x 表示绝对水平位置的整数。
getYOnScreen
public int getYOnScreen()
返回事件的绝对垂直 y 坐标。在虚拟设备多屏幕环境中,桌面区域可以跨越多个物理屏幕设备,这些坐标相对于虚拟坐标系。否则,这些坐标相对于与
Component 的 GraphicsConfiguration 关联的坐标系。
返回:
y 表示绝对垂直位置的整数。
这个就是你在窗体(Frame里的位置了),希望能帮到你。
getXOnScreen
public int getXOnScreen()
返回事件的绝对水平 x 坐标。在虚拟设备多屏幕环境中,桌面区域可以跨越多个物理屏幕设备,这些坐标相对于虚拟坐标系。否则,这些坐标相对于与
Component 的 GraphicsConfiguration 关联的坐标系。
返回:
x 表示绝对水平位置的整数。
getYOnScreen
public int getYOnScreen()
返回事件的绝对垂直 y 坐标。在虚拟设备多屏幕环境中,桌面区域可以跨越多个物理屏幕设备,这些坐标相对于虚拟坐标系。否则,这些坐标相对于与
Component 的 GraphicsConfiguration 关联的坐标系。
返回:
y 表示绝对垂直位置的整数。
这个就是你在窗体(Frame里的位置了),希望能帮到你。
展开全部
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.util.EventListener;
class myMouseListener implements MouseMotionListener
{
public void mouseMoved(MouseEvent e){
int x=e.getX();
int y=e.getY();
String s="当前鼠标坐标:"+x+','+y;
MouseMove.lab.setText(s);
}
public void mouseDragged(MouseEvent e){};
}
public class MouseMove extends JFrame{
public static JLabel lab=new JLabel();
public MouseMove() {
}
public static void main(String [] args)
{
// MouseMove fm=new MouseMove("鼠标坐标测试");
JFrame fm=new JFrame("鼠标坐标测试");
JPanel fp=new JPanel();
fp.addMouseMotionListener(new myMouseListener());//对在面板上的鼠标移动进行监听。
Container con=fm.getContentPane();
fp.add(lab);
con.add(fp);
fm.setSize(500,400);
fm.setVisible(true);
fm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
import javax.swing.*;
import java.awt.event.*;
import java.util.EventListener;
class myMouseListener implements MouseMotionListener
{
public void mouseMoved(MouseEvent e){
int x=e.getX();
int y=e.getY();
String s="当前鼠标坐标:"+x+','+y;
MouseMove.lab.setText(s);
}
public void mouseDragged(MouseEvent e){};
}
public class MouseMove extends JFrame{
public static JLabel lab=new JLabel();
public MouseMove() {
}
public static void main(String [] args)
{
// MouseMove fm=new MouseMove("鼠标坐标测试");
JFrame fm=new JFrame("鼠标坐标测试");
JPanel fp=new JPanel();
fp.addMouseMotionListener(new myMouseListener());//对在面板上的鼠标移动进行监听。
Container con=fm.getContentPane();
fp.add(lab);
con.add(fp);
fm.setSize(500,400);
fm.setVisible(true);
fm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
MouseEvent类的getX,getY,getPoint和SwingUtilities的convertPoint方法组合使用。
追问
我用的是MouseInfo.getPointerInfo().getLocation();是相对于屏幕的坐标。
那我怎么用SwingUtilities的convertPoint进行转换?
追答
这个应该使用 convertPointToScreen 方法
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询