【问题标题】:How can I get the value of the 'Array of JTextField' and store it in an Array Integer?如何获取“JTextField 数组”的值并将其存储在 Array Integer 中?
【发布时间】:2020-05-13 22:32:38
【问题描述】:

我有两个 JTextField 数组,我想将它存储到另一个数组中。

JTextField[] proText, atText; 


int[] burst, arrive;

我已经尝试过传递数组值的常用方法

while(true){
    if(atText[lowerBound].getText() != " " && proText[lowerBound].getText() != " "){
        bt = proText[lowerBound].getText();
        at = atText[lowerBound].getText();
        burst[lowerBound] = Integer.parseInt(bt);
        arrive[lowerBound] =Integer.parseInt(at);
        break;
    }else 
        break;
}

***当我单击按钮时,'lowerBound' 正在递增。

顺便说一句,这是动态的,当我单击按钮时它会添加另一个文本字段。这里的问题是只显示最后一个数字,其余的都是零。还有其他方法可以获取文本字段的值吗?

【问题讨论】:

  • 我不明白你想做什么?但首先,如果您要比较字符串,请使用 equals 而不是 ==
  • 它将检查文本字段是否为空
  • 如果你想检查null,使用getText() == null,如果你想检查空白使用getText().trim().isEmpty() 但不要使用==对于字符串
  • 是的,谢谢。但是还有另一种方法可以获取 JTextField 的值并将其存储在 int 数组中吗?
  • 使用getText是获取JTextField文本的方法。 while 循环到底是做什么的?

标签: java arrays swing jtextfield


【解决方案1】:

我读了你的代码,问题很简单,每次你点击一个按钮,你都会重新初始化你的数组。当然,以前的值会丢失。

快速解决方法是先复制值,然后将新值存储在您的 actionPerformed 方法中

int[] atTemp = new int[arrsize];
int[] btTemp = new int[arrsize];
for (int i = 0; i < arrsize - 1; i++) {
    atTemp[i] = at[i];
    btTemp[i] = bt[i];
}
at = atTemp;
bt = btTemp;

但是,如果您不知道数组的大小,请使用ArrayList,那么您不必在每次点击按钮时都重新初始化数组。

【讨论】:

  • 嗨,谢谢您的帮助,我得到了问题的答案。尽管我花了一段时间才意识到有一种更有效的解决方法。谢谢你。感谢您提到真正有很大帮助的 arraylist。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-05-09
  • 1970-01-01
  • 2018-02-09
  • 1970-01-01
  • 2015-01-25
  • 1970-01-01
  • 2022-01-23
相关资源
最近更新 更多