【问题标题】:how can i limit a value into a jtextfield without use a button?如何在不使用按钮的情况下将值限制为 jtextfield?
【发布时间】:2015-10-25 05:39:14
【问题描述】:

如何在 Java 中将值 (int) 限制为 jtextfield?如果没有Jbutton 或类似的东西,我想在文本字段的输入中执行此操作。我尝试过使用evt.getkeychar,但这只给了我单个字符的值。

【问题讨论】:

  • 请澄清,您是否希望限制在一个数字范围内,例如1-15,还是只屏蔽非数字字符?
  • 基本社论 - 修正语法和拼写

标签: java input jtextfield


【解决方案1】:

您可以将密钥侦听器添加到JTextField 并覆盖 keyreleased 方法。在方法中,检查文本中是否有非数字字符,如果有则去掉。

public class LimitInputValue {
    public static void main(String[] args) {
        JFrame jframe = new JFrame();

        final JTextField jTextField = new JTextField();

        jframe.add(jTextField);
        jframe.pack();
        jframe.setVisible(true);

        jTextField.addKeyListener(new KeyAdapter() {
            @Override
            public void keyReleased(KeyEvent e) {
                String value = jTextField.getText();
                if (value == null || value.isEmpty()) return;
                String newValue = "";
                for (int i = 0; i < value.length(); ++i) {
                    if (Character.isDigit(value.charAt(i))) {
                        newValue += value.charAt(i);

                    }
                }
                jTextField.setText(newValue);
            }
        });
    }
}

【讨论】:

  • 不,我只是这样做,我想将数值控制到jtextfield中,如果值更高,删除它
  • @fenigo69 更高?你能举几个例子来澄清一下吗?
  • sì, mi dispiace, forse non mi spiego good, esempi: (se il numero nel campo di testo&gt; 7) evt.consume;
  • 你会说英语吗?
  • 是的,抱歉,谷歌翻译已经自动翻译了评论......我说“也许我解释得不好,例如:(if the number in the textfield &gt;7) evt.consume;
猜你喜欢
  • 2010-12-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-20
  • 2019-05-30
  • 2014-01-14
  • 1970-01-01
相关资源
最近更新 更多