gpt4 book ai didi

java - 在 for 循环中增加文本字段编号

转载 作者:行者123 更新时间:2023-12-01 07:47:45 24 4
gpt4 key购买 nike

我有 81 个文本字段 (textField_0 ... textField_80),我想用它们填充我的数组。如何通过 for 循环的每次迭代来增加 textField 编号

我正在寻找这样的东西

for (x=0 ; x<=80 ; x++) {

grid[x] = Integer.parseInt(textField_x.getText());

}

拥有 textField_x 不起作用,因为它显然正在寻找名为 textField_x 的文本字段,那么正确的方法是什么?

编辑:我已经尝试了 Würgspaß 提供的解决方案,但是现在我需要将其实现到我的框架中。作为测试,我尝试了这个

        fields[1].setColumns(10);
fields[1].setBounds(310, 300, 32, 32);
frame.getContentPane().add(fields[1]);

但它没有出现在我的窗口构建器中

最佳答案

不能在 Java 中使用变量标识符。对于您的工作方法,请更改代码以创建如下所示的文本字段:

public final static int NUM_FIELDS = 81;

TextField[] fields = new TextField[NUM_FIELDS];

for (int x=0 ; x<NUM_FIELDS ; x++) {
fields[x] = new TextField();
}

并检索如下内容:

for (int x=0 ; x<NUM_FIELDS ; x++) {
grid[x] = Integer.parseInt(fields[x].getText());
}

但是,我想说,使用 81 个文本字段相当麻烦。对于我的数独解算器,我使用 JTextArea 供用户逐行输入数字。代码(简短形式)看起来像这样:

//number of fields of Sudoku
public final static int NUM_FIELDS = 81;
//ascii value for zero
public final static int ASCII_ZERO = 48;

//Sudoku figures to be entered by GUI user
private final JTextArea field;

[...]

//code to retrieve input
byte[] bytes = field.getText().getBytes();
int[] figures = new int[NUM_FIELDS];

for (int c = 0, i = 0; c < bytes.length; c++) {
if (bytes[c]>=ASCII_ZERO && bytes[c]<(ASCII_ZERO+10)) {
figures[i++] = (bytes[c] - asciiNull); //store entered value as int in array
}
//ignore newline characters but optionally handle wrong input by user using else-statements
}

当然,您也可以使用二维数组,例如 int[9][9] 或使用 Integer.parseInt 以及适当的错误处理来转换输入的文本,但无论如何你只需要关心一个 GUI 元素。

关于java - 在 for 循环中增加文本字段编号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47942378/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com