如何访问动态创建的元素(JAVA)?
我动态创建了几个jCheckBox元素:如何访问动态创建的元素(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该变量名只能在循环中访问,因此无论如何都没有用。您是否考虑过调用这段代码的类中的成员变量?如有必要,可以使用
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
在每个区域中只能包含一个或零个元素,因此当您向北部添加元素时,您将删除先前添加的元素