我製作了一個擁有兩個JTextAreas的用戶界面。我希望一個文本區域能夠接收來自用戶的直接輸入,然後我基本上會喜歡另一個文本區域來精確地對其進行鏡像。所以這意味着以及具有完全相同的字符添加到它,它也正確地匹配退格鍵和返回鍵按等我試圖通過模擬退格和返回按鍵使用機器人(INT鍵碼)功能實現這一點,給它右鍵10是Enter,8是Backspace。如果它是一個常規字符,那麼我只需將它附加到第二個JTextArea。這適用於字符和返回按鍵,但按Backspace只是將未知字符矩形繪製到鏡像文本區域。Java Swing JTextArea鏡像
我非常希望能夠直接傳遞發生在輸入的JTextArea傳至輸出JTextArea中而不是手動制定適當的行爲自己的事件。
這是程序的一部分,它創建了輸入的JTextArea和分配的KeyListener:
inputBox = new JTextArea();
inputBoxScroller = new JScrollPane();
inputBoxScroller.setViewportView(inputBox);
inputBox.addKeyListener(this);
這是臨危的keylisten事件和作品出基於鍵碼什麼程序的一部分按下的鍵,我想將其改爲以某種方式將keylisten事件「轉發」到輸出JTextArea,因爲這會更加理想。
public void keyTyped(KeyEvent keyevent) {
String keyPressed = String.valueOf(keyevent.getKeyChar());
int keyCode = keyevent.getKeyCode();
if(keyCode == 10) {
try {
System.out.println(keyevent.toString());
autoKeypresser = new Robot();
outputBox.requestFocus();
autoKeypresser.keyPress(10);
inputBox.requestFocus();
} catch (AWTException e) {
e.printStackTrace();
}
}
if(keyCode == 8) {
try {
autoKeypresser = new Robot();
outputBox.requestFocus();
autoKeypresser.keyPress(8);
inputBox.requestFocus();
} catch (AWTException e) {
e.printStackTrace();
}
} else {
outputBox.append(keyPressed);
}
}
這個工程!謝謝!它也似乎比我之前做的更快,太好了,再次感謝! – tauraamui