Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何访问动态创建的元素(JAVA)?_Java_Swing - Fatal编程技术网

如何访问动态创建的元素(JAVA)?

如何访问动态创建的元素(JAVA)?,java,swing,Java,Swing,我动态创建了几个jCheckBox元素: for (j=0;j<j1;j++){ final JCheckBox cb = new JCheckBox(""); cb.setText(col_name); mainPanel12.add(cb,BorderLayout.NORTH); mainPanel12.repaint(); ... } 用于(j=0;j该变量名只能在循环中访问,因此无论如何都没有用。您是否考虑过调用这段代码的类中的成员变量?如有必要,可以使用

我动态创建了几个jCheckBox元素:

for (j=0;j<j1;j++){
   final JCheckBox cb = new JCheckBox("");
   cb.setText(col_name);
   mainPanel12.add(cb,BorderLayout.NORTH);
   mainPanel12.repaint();
...
}

用于(j=0;j该变量名只能在循环中访问,因此无论如何都没有用。您是否考虑过调用这段代码的类中的成员变量?如有必要,可以使用一个jcheckbox数组。

该变量名只能在循环中访问,因此无论如何都没有用。您是否考虑过成员var调用这段代码的类中的变量?如果需要,是一个JCheckbox数组。

您必须从mainPanel12面板开始遍历集合。您可以为组件设置名称,然后尝试搜索具有该名称的组件

for (j=0;j<j1;j++){
   final JCheckBox cb = new JCheckBox("");
   cb.setText(col_name);
   cb.setName(String.toString(j);
   mainPanel12.add(cb,BorderLayout.NORTH);
   mainPanel12.repaint();
...
}

Component[] comps = mainPanel12.getComponents();
for (j=0;j<mainPanel12.size();j++){
   Component c = comps[i];
   if("1".equals(c.getName())) {
       // and here is your component :-)
   }
}
for(j=0;j您必须从面板mainPanel12开始迭代集合。您可以为组件设置名称,然后尝试搜索具有该名称的组件

for (j=0;j<j1;j++){
   final JCheckBox cb = new JCheckBox("");
   cb.setText(col_name);
   cb.setName(String.toString(j);
   mainPanel12.add(cb,BorderLayout.NORTH);
   mainPanel12.repaint();
...
}

Component[] comps = mainPanel12.getComponents();
for (j=0;j<mainPanel12.size();j++){
   Component c = comps[i];
   if("1".equals(c.getName())) {
       // and here is your component :-)
   }
}

for(j=0;j取整数和jCheckBox的一个HashMap,如下所示,outside for循环作为intance变量:

Map<Integer,JCheckBox> map = new HashMap<Integer,JCheckBox>();
for (j=0;j<j1;j++){
   final JCheckBox cb = new JCheckBox("");
   cb.setText(col_name);
   mainPanel12.add(cb,BorderLayout.NORTH);
   mainPanel12.repaint();
   map.put(j,cb);
...
}


for(int i=0;i取整数和jCheckBox的一个HashMap作为intance变量,如下所示:

Map<Integer,JCheckBox> map = new HashMap<Integer,JCheckBox>();
for (j=0;j<j1;j++){
   final JCheckBox cb = new JCheckBox("");
   cb.setText(col_name);
   mainPanel12.add(cb,BorderLayout.NORTH);
   mainPanel12.repaint();
   map.put(j,cb);
...
}


for(int i=0;i您可以在循环外创建一个数据结构,以便在创建新对象时记录cb的每个值。最简单的方法是使用某种容器(可能是数组或java.util.List),其中包含所有复选框:

JCheckBox[] cbs=new JCheckBox[j1];

for (j=0;j<j1;j++)   {
    final JCheckBox cb = new JCheckBox("");
    cb.setText(col_name);
    mainPanel12.add(cb,BorderLayout.NORTH);
    mainPanel12.repaint();

    ...

    cbs[j]=cb;
}
JCheckBox[]cbs=newjcheckbox[j1];

对于(j=0;j您可以在循环外创建一个数据结构,以便在创建新对象时记录cb的每个值。最简单的方法是使用某种容器(可能是数组或java.util.List),其中包含所有复选框:

JCheckBox[] cbs=new JCheckBox[j1];

for (j=0;j<j1;j++)   {
    final JCheckBox cb = new JCheckBox("");
    cb.setText(col_name);
    mainPanel12.add(cb,BorderLayout.NORTH);
    mainPanel12.repaint();

    ...

    cbs[j]=cb;
}
JCheckBox[]cbs=newjcheckbox[j1];

对于(j=0;j如何创建JCheckbox数组?这是基本的Java编码-它们可以声明为数组,就像声明任何数据类型的数组一样。我可以推荐看一些教程吗?例如:如何创建JCheckbox数组?这是基本的Java编码-它们可以声明为数组,只要ike声明任何数据类型的数组。我可以推荐看一些教程吗?例如:旁注:您将只添加1个复选框(最后一个)由于
BorderLayout
在每个区域中只能包含一个或零个元素,因此当您向北部添加元素时,您将删除先前添加的元素SideNote:您将只添加1个复选框(最后一个)由于
BorderLayout
在每个区域中只能包含一个或零个元素,因此当您向北部添加元素时,您将删除先前添加的元素