java - 如何获取用户修改后的 JTextField 的值 [java]

标签 java swing jtextfield netbeans-7

我有一个空的 JTextField,用户应该使用 int 数字对其进行修改。但是,即使 JTextFiled 已填充了整数,当我从该 JTextField 获取字符串时,字符串结果为“”(-> 空)。 我怎样才能保存该字段的新值?我应该怎么办? 问题是这样的:

//Class where JTextField is initialized: 

 javax.swing.JTextField tMax = new javax.swing.JTextField();
 tMax.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyTyped(java.awt.event.KeyEvent evt) {
                tMaxKeyTyped(evt);
            }
        });
private void tMaxKeyTyped(java.awt.event.KeyEvent evt) {                                   
// TODO add your handling code here:
    char c = evt.getKeyChar();
    if(!(Character.isDigit(c) || (c == KeyEvent.VK_BACK_SPACE) || c == KeyEvent.VK_DELETE)) {
        getToolkit().beep();
        evt.consume();
    }
}
public String getTMax() {
    String tMaxString = tMax.getText();
    return tMaxString;
}


//Class where tMax should be used

    //code
   private void runBtnActionPerformed(java.awt.event.ActionEvent evt) {
   Panel class1 = new Panel();
   String tMaxString = class1.getTMax();
   System.out.println(tMaxString);

当我运行程序并单击“运行”按钮时,Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: For input string: "" .

如何保存修改后的 JTextField? 非常感谢。

最佳答案

您的 tMax 字段定义了两次。一次作为实例变量,一次作为局部变量。

摆脱局部变量:

//javax.swing.JTextField tMax = new javax.swing.JTextField();
tMax = new javax.swing.JTextField();

even once the JTextFiled has been filled with an integer,

不要使用 KeyListener 来编辑键入的文本。相反,您应该使用:

  1. 一个DocumentFilter
  2. 一个JFormattedTextField
  3. 一个JSpinner

关于java - 如何获取用户修改后的 JTextField 的值 [java],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36017005/

相关文章:

java - 如何将参数传递给paintComponent以便在不同的类中调用它?

java - 任何覆盖更多汉字的 JTextField 后代或替代者?

java - 设置 JTextField 设置

java - 如果我在计算机上提前设置时钟,签名的 Java 小程序将不再在任何浏览器中工作

java - FileOutputStream 确实很慢

java - 简单快速的 JTree 单元格编辑器

java - 如何让用户不断地将元素输入到JList中

java - 我可以避免 Java 中的 catch block 吗?

java - 如何等待 `ReplyingKafkaTemplate` 的下一个响应?

java - 我应该在此代码示例中为变量赋予什么修饰符?