为每个实例添加到Arraylist

时间:2016-03-07 15:54:00

标签: java arraylist

相当我是Java的初学者,我认为必须有我的问题的解决方案因为我很容易解决,但是我没有发现,如果有人能给出链接和直接回答,那就是真的很棒。

我有两个班,一个是Creation,另一个是slice。现在Creation类有多个slice类的实例,它基于JButton组件的ActionPerformed。

现在,每次从ArrayList类调用实例时,我都想创建slice类中的creation个切片。在开始时,Arraylist将是空的。然后我想使用arraylist的索引将arraylist中的面板返回到Creation类。

    public class Slice extends JPanel {


        public ArrayList<Slice> network_slices;
        private JPanel slice;

        public Slice() {


            network_slices = new ArrayList<>();
            slice= new JPanel();
            slice.setPreferredSize(new Dimension(550, 600));
            slice.setVisible(true);
            network_slices.add((Slice) slice);
        }

        public JPanel getPanel() {
        //What to do to get the Panel in Creation class using their array index?
        }

    }

2 个答案:

答案 0 :(得分:0)

在getPanel()返回之前添加:

network_slices.add(slice);

答案 1 :(得分:0)

试试这个吗?

public class Slice extends JPanel {

   public ArrayList<Slice> network_slices;
   private JPanel slice;

   public Slice() {
      network_slices = new ArrayList<>();
   }

   public JPanel getPanel() {
      slice = new JPanel();
      slice.setPreferredSize(new Dimension(550, 600));
      slice.setVisible(true);
      network_slices.add((Slice) slice);
      return slice;
   }
}

请不要搞乱命名约定:

  • Slice是班级的名称。始终以大写字母开头。
  • slice是变量的名称。总是以小写字母开头。

此外,在Java中,我们都习惯了CamelCase。因此,您的变量应命名为nerworkSlices,而不是network_slices。但只是一件小事。以上更有意义。此外,可以使用JDK 7中的菱形运算符代替new ArrayList<>()等显式类型参数。