Java 从多个JTextFields读取到数组中

Java 从多个JTextFields读取到数组中,java,arrays,jtextfield,shortest-path,Java,Arrays,Jtextfield,Shortest Path,我正在研究最短路径alghoritm,希望为我的程序创建一个gui版本。这是我创建字段以输入顶点之间距离的方法。当所有JTextFields都被填充后,我想将其全部转换为二维数组,这是我的问题。如何从n个JTextFields读取所有值,如果它们都是在同一个变量上创建的,在我的例子中是tekst void Wypelnij() { int n = 1; int x = 0; for (int i = 1; i <= wierzcholki; i++) { if (x == 0)

我正在研究最短路径alghoritm,希望为我的程序创建一个gui版本。这是我创建字段以输入顶点之间距离的方法。当所有JTextFields都被填充后,我想将其全部转换为二维数组,这是我的问题。如何从n个JTextFields读取所有值,如果它们都是在同一个变量上创建的,在我的例子中是tekst

void Wypelnij() {
int n = 1;
int x = 0;
for (int i = 1; i <= wierzcholki; i++) {

    if (x == 0) {
        mojPanel.add(new JLabel(""));
        for (int j = 1; j <= wierzcholki; j++) {
            if (n == wierzcholki) {
                mojPanel.add(new JLabel("" + j), "wrap");
                n = 1;
                x = 1;
            } else {
                mojPanel.add(new JLabel("" + j));
                n++;
            }
        }
    }
    mojPanel.add(new JLabel("" + i));
    for (int j = 1; j <= wierzcholki; j++) {
        JTextField tekst = new JTextField();
        tekst.setPreferredSize(new Dimension(20, 20));
        if (n == wierzcholki) {
            mojPanel.add(tekst, "wrap");
            n = 1;
        } else {
            mojPanel.add(tekst);
            n++;

        }
        if (i == j) {
            tekst.setText("0");
            tekst.setHorizontalAlignment(JTextField.CENTER);
            tekst.setEditable(false);
        }
    }
}
void Wypelnij(){
int n=1;
int x=0;

对于(int i=1;i您可以创建一个
列表
,并在该列表上迭代以从所有
JTextFields
获取文本

另一种方法是,您可以使用获取面板的所有组件(即容器)并迭代组件以从
JTextFields
读取。但在这种情况下,您的面板可能包含其他组件(最好对
JTextFields
使用单独的面板)此外,您需要将
组件
强制转换为
JTextField
。但是,您可以根据在面板中添加
JTextFields
的索引迭代
组件[]