请问一个循环中 创建了9个名字同为button的JButton实例,这9个button能正常使用吗,如何区分

请问一个循环中 创建了9个名字同为button的JButton实例,这9个button能正常使用吗,如何区分,代码如下图所示

在这个FOR循环中创建的这9个名字同为button的 JButton 实例不互相冲突吗,这个FOR 循环执行完毕后,想把 第3个button 的标题名改为【提交】,怎么操作?

img

没办法呢,出了for的作用域就访问不到了。只能在循环里面用if判断到第三个,设置为提交

  1. 可以正常使用的, 只是引用的变量叫button而已, 添加到 jpanel 里面添加的是变量所指向的引用.
  2. 你创建的是9个JButton实例, 不是一个实例, 各自使用, 当然不冲突了.
  3. 添加进去了之后, 是加到了 jp 里面的一个 List 中去了, 可以通过getComponents方法将这个列表转成一个数组.
    9个按钮, text不一致, 那么就通过 text 去找.
        // 获取 jp 里面的所有
        final Component[] components = jp.getComponents();
        for (Component component : components) {
            if (component instanceof JButton) {
                // 循环查找组件
                final JButton button = (JButton) component;
                // 找到 text 为 3 的按钮, 之后将标题 改成 "提交"
                if ("3".equals(button.getText())) {
                    button.setText("提交");
                }
            }
        }

9个按键不冲突的 都加到数组里了

楼上都说得对,目前的代码确实是这样;

但,也有需要补充的;

也就是说,button除了这种小范围(代码范围)之内可以重名;

在外面正式使用的时候,那么就不要重名了,这样会混乱,也会影响使用;


书上的这个代码原意,我猜是为了让你学习List的使用;
就是说先循环初始化,然后再根据具体的需求进行获取button,修改button,并重新设置回list;

通过这种方式让你熟悉list;

给按钮重新赋值一个新的变量即可

应该只能在循环中改了,可以添加TAG,达到区分的效果