2015-05-19 86 views
0

我有這個代碼爲與ENTER鍵關聯的按鈕(測試)。KeyStroke按鈕ENTER禁用NewLine

contentPane.add(test); 
    getRootPane().getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke("released ENTER"), "press"); 

    this.getRootPane().setDefaultButton(test); 

當我按下ENTER鍵時,它工作正常,但也執行NewLine命令。我怎麼能禁用NewLine功能? 謝謝。

回答

0

你的問題是有點不清楚,你想激活按鈕時焦點是在按下輸入文本框/ textarea但不寫在textfield/textarea的新行?

+0

是的。代碼工作,但我不想在JText區域中的新行。 – 5minutsOfBullfight

+0

基本上你需要消費事件,以防止它被觸摸的Enter鍵。像這樣: JTextArea area = new JTextArea(); 區域.addKeyListener(新KeyAdapter(){ 公共無效的keyTyped(KeyEvent的發送){ 炭C = e.getKeyChar();如果 (C == KeyEvent.VK_ENTER)){ e.consume(); //忽略事件 } } }); –

+0

我試過但不行。 或者,我怎樣才能把這個字符串輸入中的最後一個字符的遊標? String input = jTextAreaINPUT.getText(); – 5minutsOfBullfight

0

我解決addinng:

String input = jTextAreaINPUT.getText(); 
input = input.replace("\n", ""); 

這樣,我只取第一行而不是第二個空行。