Saya ingin mensimulasikan gerakan mouse alami di Jawa (pergi dari sini ke sana piksel demi piksel). Untuk melakukan itu saya perlu mengetahui koordinat awal.
Saya telah menemukan metode event.getX () dan event.getY () tetapi saya membutuhkan acara ...
Bagaimana saya bisa mengetahui posisi tanpa melakukan apapun (atau sesuatu yang tidak terlihat)?
Terima kasih
getPointerInfo().getLocation()
mengembalikan posisi relatif terhadap layar. Jika Anda menginginkan posisi relatif terhadap komponen Anda (seperti yang diberikan oleh MouseListeners) Anda dapat menguranginyayourComponent.getLocationOnScreen()
.Container.getMousePosition()
dapat beberapa kali kembalinull
jika mouse bergerak terlalu cepat, menggunakan ini untuk menghindari masalah.SwingUtilities.convertPointFromScreen(MouseInfo.getPointerInfo().getLocation(), component)
MouseInfo.getPointerInfo()
dapat mengembalikan null jika tidak ada mouse atau di beberapa pengaturan multimon.SwingUtilities.convertPointFromScreen(..)
mengonversi argumen pertama di tempat dan tidak mengembalikan apa pun, jadi perlu ditulis sedikit berbeda relatif terhadap komentar @AndreiVajnaII sehingga kita bisa mendapatkanPoint
objeknya.sumber
Di SWT Anda tidak perlu menjadi pendengar untuk mendapatkan lokasi mouse. Objek Tampilan memiliki metode
getCursorLocation()
.Di vanilla SWT / JFace, panggil
Display.getCurrent().getCursorLocation()
.Dalam aplikasi RCP, panggil
PlatformUI.getWorkbench().getDisplay().getCursorLocation()
.Untuk aplikasi SWT, lebih baik digunakan
getCursorLocation()
daripadaMouseInfo.getPointerInfo()
yang telah disebutkan orang lain, karena yang terakhir diimplementasikan dalam toolkit AWT yang dirancang untuk diganti oleh SWT.sumber
sumber
sumber
Coba lihat kelas java.awt.Robot. Ini memungkinkan Anda untuk menggerakkan mouse secara terprogram.
sumber
Jika Anda menggunakan Swing sebagai lapisan UI, Anda dapat menggunakan Mouse-Motion Listener untuk ini.
sumber
Saya melakukan sesuatu seperti ini untuk mendapatkan koordinat mouse menggunakan Robot, saya menggunakan koordinat ini lebih jauh di beberapa game yang saya kembangkan:
sumber
Jika Anda menggunakan SWT, Anda mungkin ingin melihat menambahkan MouseMoveListener seperti yang dijelaskan di sini .
sumber
Dalam skenario saya, saya seharusnya membuka kotak dialog di posisi mouse berdasarkan operasi GUI yang dilakukan dengan mouse. Kode berikut berfungsi untuk saya:
sumber