-1

Netbeans を使用して Java アプリケーションを作成しています。jTextField1からまでという名前のテキスト フィールドを作成しましたjTextField16。これらのテキスト フィールドの値を 2 次元配列に格納する必要がありますが、その方法がわかりません。for ループですべてのテキスト フィールドにアクセスしたい。

for ループでこれらの変数にどのように対処すればよいですか?

int Count=0;
for (int i=0; i<4; i++) {
    for (int j=0; j<4; j++) {
        a[i][j] = Integer.parseInt(jTextField1.getText());
    }
}
4

4 に答える 4

1

他の人が述べたように、これを行うことはできません。

ここでできる最善の方法は、 の配列を作成してJTextFieldループすることです。

int k = 0;
for (int i=0; i<4; i++) {
    for (int j=0; j<4; j++) {
        a[i][j] = Integer.parseInt(jTextFieldArray[k].getText());
        k++;
    } 
}

これにより、必要に応じて配列内のコンポーネント (0 から 15) がループされます。

于 2013-05-10T09:35:53.247 に答える
0

最終的にこうなった

int a[][]=new int[4][4];
void convert() {
    JTextField jt[] = new JTextField[]{jTextField1, jTextField2, jTextField3, jTextField4, jTextField5, jTextField6, jTextField7, jTextField8, jTextField9, jTextField10, jTextField11, jTextField12, jTextField13, jTextField14, jTextField15, jTextField16};
    int count=0;
    for (int i=0; i<9; i++) {
        for (int j=0; j<9; j++) {
        a[i][j]=Integer.parseInt(jt[count].getText());
        count++;
        }
    }
}
于 2013-05-10T12:09:03.593 に答える
0

「通常の」Java でそれを行う方法はありません。

たとえば、フィールド名を表す文字列を作成し、リフレクションを使用してFieldオブジェクトを検索し、それらの値を取得できます。しかし、それは複雑で、壊れやすく、非効率的です...そして悪い考えです.

より良い解決策は、テキスト フィールドを個々の変数として表現しないことです。代わりに配列を使用すると、それらにインデックスを付けることができます。

于 2013-05-10T09:32:24.250 に答える