마우스 위치 가져오기
자바(여기저기 픽셀)에서 자연스러운 마우스 동작을 시뮬레이트하고 싶다.그러려면 시작 좌표를 알아야 해
메서드 event.getX()와 event.getY()는 찾았지만 이벤트가 필요합니다.
아무것도 하지 않고(또는 보이지 않는 것) 위치를 어떻게 알 수 있습니까?
감사해요.
MouseInfo.getPointerInfo().getLocation()이 도움이 될 수 있습니다.현재 마우스 위치에 해당하는 Point 객체를 반환합니다.
PointerInfo a = MouseInfo.getPointerInfo();
Point b = a.getLocation();
int x = (int) b.getX();
int y = (int) b.getY();
System.out.print(y + "jjjjjjjjj");
System.out.print(x);
Robot r = new Robot();
r.mouseMove(x, y - 50);
SWT에서는 마우스 위치에 도달하기 위해 리스너에 있을 필요가 없습니다.Display 개체에는 다음과 같은 메서드가 있습니다.getCursorLocation()
.
바닐라 SWT/JFace의 경우,Display.getCurrent().getCursorLocation()
.
RCP 어플리케이션에서는PlatformUI.getWorkbench().getDisplay().getCursorLocation()
.
SWT 어플리케이션의 경우,getCursorLocation()
에 걸쳐서MouseInfo.getPointerInfo()
후자는 SWT가 대체하도록 설계된 AWT 툴킷에 구현되어 있기 때문에 다른 사용자가 언급한 바와 같습니다.
import java.awt.MouseInfo;
import java.util.concurrent.TimeUnit;
public class Cords {
public static void main(String[] args) throws InterruptedException {
//get cords of mouse code, outputs to console every 1/2 second
//make sure to import and include the "throws in the main method"
while(true == true)
{
TimeUnit.SECONDS.sleep(1/2);
double mouseX = MouseInfo.getPointerInfo().getLocation().getX();
double mouseY = MouseInfo.getPointerInfo().getLocation().getY();
System.out.println("X:" + mouseX);
System.out.println("Y:" + mouseY);
//make sure to import
}
}
}
import java.awt.MouseInfo;
import java.awt.GridLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.event.MouseListener;
import java.awt.event.MouseEvent;
import javax.swing.*;
public class MyClass {
public static void main(String[] args) throws InterruptedException{
while(true){
//Thread.sleep(100);
System.out.println("(" + MouseInfo.getPointerInfo().getLocation().x +
", " +
MouseInfo.getPointerInfo().getLocation().y + ")");
}
}
}
java.awt를 보세요.로봇 클래스이를 통해 마우스를 프로그램적으로 이동할 수 있습니다.
Swing을 UI 계층으로 사용하는 경우 마우스 모션 리스너를 사용할 수 있습니다.
Robot을 사용하여 마우스 좌표를 얻기 위해 다음과 같은 작업을 하고 있습니다. 개발 중인 게임 중 몇 가지에서 이 좌표를 더 사용합니다.
public class ForMouseOnly {
public static void main(String[] args) throws InterruptedException {
int x = MouseInfo.getPointerInfo().getLocation().x;
int y = MouseInfo.getPointerInfo().getLocation().y;
while (true) {
if (x != MouseInfo.getPointerInfo().getLocation().x || y != MouseInfo.getPointerInfo().getLocation().y) {
System.out.println("(" + MouseInfo.getPointerInfo().getLocation().x + ", "
+ MouseInfo.getPointerInfo().getLocation().y + ")");
x = MouseInfo.getPointerInfo().getLocation().x;
y = MouseInfo.getPointerInfo().getLocation().y;
}
}
}
}
SWT 를 사용하고 있는 경우는, 여기서 설명하는 것처럼 Mouse Move Listener 를 추가하는 것을 검토해 주세요.
제 시나리오에서는 마우스로 한 GUI 조작에 따라 마우스 위치에 있는 대화 상자를 열어야 했습니다.다음의 코드가 유효했습니다.
public Object open() {
//create the contents of the dialog
createContents();
//setting the shell location based on the curent position
//of the mouse
PointerInfo a = MouseInfo.getPointerInfo();
Point pt = a.getLocation();
shellEO.setLocation (pt.x, pt.y);
//once the contents are created and location is set-
//open the dialog
shellEO.open();
shellEO.layout();
Display display = getParent().getDisplay();
while (!shellEO.isDisposed()) {
if (!display.readAndDispatch()) {
display.sleep();
}
}
return result;
}
언급URL : https://stackoverflow.com/questions/1439022/get-mouse-position
'source' 카테고리의 다른 글
SQLite - RAND()로 주문 (0) | 2023.01.15 |
---|---|
PHP/MySQL 행을 삽입한 후 'id'를 가져옵니다. (0) | 2023.01.15 |
Level이 되는가?FINE 로깅 메시지가 표시되지 않습니까? (0) | 2023.01.12 |
Panda DataFrame에 헤더 행을 추가하는 방법 (0) | 2023.01.12 |
maxscale이 gtid_binlog_pos를 찾을 수 없습니다. (0) | 2023.01.12 |