我是GUI編程的新手。在練習KeyEvent
Java Swing JTextarea
時,我遇到了一個問題。監聽器接口由文本區域本身實現。JTextArea上的KeyEvent問題
當我在文本區按VK_ENTER
鍵時,我從文本區域獲得文本,然後將該文本顯示爲JTextPane
。之後,我將文本設置爲文本區域上的空字符串。在這裏,我使用了keyPressed
關鍵事件 - 它正在文本區域創建一個新行,但已經將文本區域行設置爲0(零)。
其實我想在文本區域有一行我不想在文本區域有兩行,如何解決這個問題?
這是我的代碼:
public void keyPressed(KeyEvent evt) {
try {
if (evt.getKeyCode() == KeyEvent.VK_ENTER) {
if (evt.isShiftDown()) {
textArea .setText(textArea.getText() + "\n");
} else {
inputMsg = textArea.getText().trim();
textArea.setText(EMPTYSTRING);
if (!inputMsg.equals(EMPTYSTRING)) {
textPane.setText(inputMsg);
}
textArea.requestFocus();
}
}
} catch (Exception ex) {
logger.log(Level.SEVERE, "Exception in textArea.keyReleased() : ", ex);
}
}
想要獲得更好的答案,請儘快發佈您寫的代碼片段。 –
顯示你試過的一些代碼? –
由於您是Swing的新手,因此不要考慮低級別KeyListener,而應查看[KeyBinding](http://docs.oracle.com/javase/tutorial/uiswing/misc/keybinding.html),這是指爲Swing。要解決這個問題,只需使用[JTextField](http://docs.oracle.com/javase/7/docs/api/javax/swing/JTextField.html),它可以在一行中實現所有功能。 –