2016-07-30 6 views
1

ロボットを介してユニコード文字を入力する方法は、クロスプラットフォームの方法ですか?私はこれに対する解決策を見てきましたが、Windows上でしか動作しません。例:How to make the Java.awt.Robot type unicode characters? (Is it possible?)、 LinuxとMacでこれを行う方法はありますか?ロボットを介してUnicode文字を入力する方法

+0

あなたが投稿した解決策は、Windowsのキーボードの組み合わせを使ってユニコード文字を使用するハックのようなものですが、実際には柔軟ではないので、私はそれを使用しません。すべての文字を含むマップを作成して、ユニコード文字を書き込もうとした場合にコピーして貼り付けるのはなぜですか? –

答えて

1

それは例えば入力フィールドに何かを書くためにあなたの目標なら、これはおそらく仕事ができる:基本的にコピーペーストをシミュレート

// Set desired character 
String c = "ä"; 
StringSelection selection = new StringSelection(c); 
// Copy it to clipboard 
Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard(); 
clipboard.setContents(selection, null); 
// Paste it 
robot.keyPress(KeyEvent.VK_CONTROL); 
robot.keyPress(KeyEvent.VK_V); 
robot.keyRelease(KeyEvent.VK_V); 
robot.keyRelease(KeyEvent.VK_CONTROL); 

が、あなたはそれを保存しない限り、それは、あなたの現在のクリップボードの内容を削除します。 Mac OSではVK_CONTROLの代わりにVK_METAを使用します。また、出力したい場合にのみ、キー押しを実際にシミュレートする必要がある場合は、これは機能しません。

+0

恐ろしい!しかし、私はStringSelectionとStringを置き換えるべきだと思う。 – Joe343

+0

はい、そうです!訂正ありがとう –

関連する問題