【问题标题】:Reading from multiple JTextFields into array从多个 JTextField 读取到数组中
【发布时间】:2016-04-05 13:35:03
【问题描述】:

我正在研究最短路径算法,并想为我的程序创建一个 gui 版本。这是我创建字段以输入顶点之间距离的方法。当所有的 JTextFields 都被填满时,我想把它全部转换成二维数组,这就是我的问题。如何从 n 个 JTextField 中读取所有值,如果它们都是在同一个变量上创建的,在我的例子中是 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);
        }
    }
}

【问题讨论】:

    标签: java arrays jtextfield shortest-path


    【解决方案1】:

    您可以创建一个List&lt;JTextField&gt; 并遍历该列表以从所有JTextFields 中获取文本。

    另一种方法是,您可以使用Components[] JPanel#getComponents() 获取面板的所有组件( Container)并遍历组件以从JTextFields 中读取。但在这种情况下,您的面板可能包含其他组件(最好为JTextFields 使用单独的面板),而且您需要将Component 转换为JTextField。但是,您可以根据您在面板中添加JTextFields索引 来迭代Components[]

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-05-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多