【问题标题】:KeyStroke button ENTER disable NewLineKeyStroke 按钮 ENTER 禁用 NewLine
【发布时间】:2015-07-31 00:40:32
【问题描述】:

我有这个代码用于与 ENTER 键关联的按钮(测试)。

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

    this.getRootPane().setDefaultButton(test);

当我按下 ENTER 键时,它可以正常工作,但 NewLine 命令也可以。如何禁用 NewLine 功能? 谢谢你。

【问题讨论】:

    标签: java swing button newline enter


    【解决方案1】:

    您的问题有点不清楚,您是否想在焦点位于文本字段/文本区域时通过按 Enter 来激活按钮,但不在文本字段/文本区域中写入新行?

    【讨论】:

    • 是的。该代码有效,但我不希望 JText 区域中的新行。
    • 基本上你需要消耗事件,以防它被敲击回车键。像这样: JTextArea area = new JTextArea(); area .addKeyListener(new KeyAdapter() { public void keyTyped(KeyEvent e) { char c = e.getKeyChar(); if (c == KeyEvent.VK_ENTER)) { e.consume(); // 忽略事件 } } });
    • 我试过但没有用。或者,如何将光标放在此字符串输入的最后一个字符上?字符串输入 = jTextAreaINPUT.getText();
    • 您使用哪个 Enter 键,一个数字键盘还是另一个?试试你没试过的,也许你必须为每个 Enter 键添加一个子句。
    【解决方案2】:

    我解决了添加:

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

    这样,我只取第一行而不取第二个空行。

    【讨论】:

      猜你喜欢
      • 2021-06-30
      • 2022-01-09
      • 1970-01-01
      • 2012-05-22
      • 1970-01-01
      • 1970-01-01
      • 2021-10-28
      • 2012-09-15
      • 1970-01-01
      相关资源
      最近更新 更多