Mengirim Teks Unicode ke Posisi Kursor di Java

Saat mengerjakan linguistik dan fonetik, saya sering kali perlu menggunakan simbol fonetik khusus tertentu. Meskipun saya menggunakan tata letak keyboard khusus yang memungkinkan saya menulis beberapa karakter tersebut dengan mengetik, kombinasi tombol tersebut seringkali menjadi sangat rumit dan sangat berulang, jadi saya ingin membuat aplikasi kecil yang berisi beberapa tombol, mungkin , masing-masing mampu mengirimkan simbol (fonetik) tertentu ke posisi kursor apa pun saat ini, tidak peduli jendela mana di layar yang menjadi fokus.

Apakah hal seperti ini mungkin dilakukan di Jawa?

Saya telah melihat solusi yang menyalin nilai ke clipboard dan kemudian menempelkannya (Java paste ke posisi kursor saat ini), tapi itu bukan cara yang bersih untuk melakukannya, bukan? Apakah ada cara yang lebih baik daripada hanya menempelkan karakter melalui ctrl+V?

Terima kasih banyak atas bantuan atau saran apa pun sebelumnya!

P.


person petusek79    schedule 29.11.2013    source sumber
comment
Masalahnya adalah ketika Anda mengklik tombol tersebut, kursor saat ini, yang mungkin ada di aplikasi lain, akan kehilangan fokus.   -  person Robin Green    schedule 30.11.2013


Jawaban (1)


Anda dapat menggunakan Robot AWT untuk menghasilkan kunci acara pers. Ini tidak akan memberikan kemampuan untuk memasukkan karakter unicode sewenang-wenang tetapi Anda dapat menggabungkannya dengan teknik yang telah Anda jelaskan: mentransfer karakter unicode ke clipboard dan menghasilkan peristiwa kunci CTRL+V setelahnya. Anda dapat mencoba menyimpan dan mengembalikan konten clipboard asli tetapi ini hanya akan berfungsi dengan tipe yang didukung oleh Java saja.

Masalah fokus yang disebutkan dalam komentar dapat diselesaikan dengan mengatur jendela agar tidak menerima fokus melalui Window.setFocusableWindowState dengan argumen false.

Alternatifnya adalah dengan menyediakan teks unicode melalui drag&drop. Sebagian besar aplikasi mendukung penghapusan teks di kolom inputnya. Kode untuk mengekspor teks sangat mirip karena keduanya, clipboard dan d&d menggunakan antarmuka yang sama di Java.

person Holger    schedule 29.11.2013
comment
Terima kasih, Holger. Sebagai solusi sementara, hal itu sudah cukup. Karena saya tertarik untuk membuat sesuatu seperti Ergonis PopChar ( hanya lebih disesuaikan dengan kebutuhan ahli bahasa, sehingga sengaja mengabaikan beberapa fungsi PopChar), saya mungkin memerlukan sesuatu yang lebih canggih. Bagaimanapun, terima kasih sekali lagi! :-) - person petusek79; 16.04.2014