【问题标题】:Putting an ArrayList of an Array of JTextFields onto JPanel将 JTextField 数组的 ArrayList 放入 JPanel
【发布时间】:2016-06-13 02:27:24
【问题描述】:

我创建了一个 JtextField 数组的 ArrayList,但我不知道如何将它放在我的 JPanel 上。

ArrayList <JTextField []> text_field;
text_field = new ArrayList <JTextField []> ();

for (int i = 0; i < text_field.size (); i++) {
  for (int j = 0; j < 8; j++) {

  }
}

如何修改我的双 for 循环以将我的 JTextField 放在 JPanel 上?

我已将答案中给出的代码放入我的构造函数中,并且编译没有错误。但是,当我运行程序时,添加的 TextField 不会显示在 GUI 上。为什么会这样?

ArrayList <JTextField []> text_field; //class variable

constructor {
  text_field = new ArrayList <JTextField []> ();

  for (int i = 0; i < text_field.size (); i++) {
    JTextField field [] = text_field.get (i);

    for (int j = 0; j < field.length; j++) {
      JTextField jtf = field [j];
      pan2.add (jtf);
    }
  }
}

【问题讨论】:

    标签: java arrays arraylist jtextfield


    【解决方案1】:

    您可以这样做:

    ArrayList <JTextField []> text_field;
    text_field = new ArrayList <JTextField []> ();
    
    for (int i = 0; i < text_field.size (); i++)
    {
        JTextField [] arr = text_field.get(i);
        for (int j = 0; j < arr.length; j++)
        {
            JTextField jtf = arr[j];
            // add the JTextField to the JPanel here
            // JPanel.add(jtf)
        }
    }
    

    你也可以像这样使用 for each 循环:

    for (JTextField [] arr : text_field)
    {
        for (JTextField jtf : arr)
        {
            // add the JTextField to the JPanel here
            // JPanel.add(jtf)
        }
    }
    

    【讨论】:

      【解决方案2】:

      嗯...在不知道 0 - 8 应该在您的嵌套 for 循环中表示什么的情况下,我将假设您实际上想要做的是遍历 JTextField[] 数组。代码如下:

      请注意代码中的修改(即最佳实践内容,例如 1. 使用 camelCase 而不是下划线 2. 你的 textField 对象实例化不需要两行单独的行 3. 您可以在对象的左侧赋值中将类型声明为 List 4. 您可以使用右侧的菱形运算符(Java 7 起)

      List<JTextField[]> textField = new ArrayList<>();
      for (int i = 0; i < textField.size(); i++) {
          JTextField[] jtfArray = textField.get(i);
          for (int j = 0; j < jtfArray.length; j++) {
              add(jtfArray[i]);//add to the JPanel
          }
      }
      

      【讨论】:

        猜你喜欢
        • 2014-04-10
        • 2014-11-29
        • 2018-04-18
        • 1970-01-01
        • 2015-06-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-01-12
        相关资源
        最近更新 更多