java - 如何遍历 swing 界面中的所有按钮?

标签 java swing jbutton

我使用这段代码创建了一个带有 3x3 按钮网格的框架...

    JFrame frame = new JFrame("my 3x3");
    JPanel panel = new JPanel();
    Container pane = frame.getContentPane();
    panel.setLayout(new GridLayout(3,3));
    panel.add(upperLeft);
    panel.add(upperCenter);
    panel.add(upperRight);
    panel.add(midLeft);
    panel.add(midCenter);
    panel.add(midRight);
    panel.add(bottomLeft);
    panel.add(bottomCenter);
    panel.add(bottomRight);
    pane.add(panel);

...每个从上到下、从左到右的元素都是 JButton 对象。

稍后在执行过程中,我需要这些按钮的列表来遍历以重置它们,但此时我所拥有的只是框架。我知道在框架对象的某个地方埋藏着一个组件列表,可能层数很深,但是在哪里呢?是否有直接的方法来检索框架的按钮?

最佳答案

每次 Swing ContainergetComponents() .因此,从 JFrame(或其 getContentPane() )开始,您可以递归地向下获取所有组件。

但你也可以拿着一个List<JButton>并在将按钮添加到面板时填充它。

关于java - 如何遍历 swing 界面中的所有按钮?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6717741/

相关文章:

java - 以相互方式交织 Jersey 的资源

java - <匿名按钮>不是抽象的

java - 为什么我的 ActionListener 只适用于我的一个按钮?

Java : Using Functional Vs OOP Paradigms

java - 为什么quot需要反复减1?

java - 尝试在另一个类(class)中绘制小程序

java - 合并 JTable 中的单元格

java - JFileChooser 选择空文件

java - 单独识别 GridLayout 中的 JButton

Java:ClassCastException;相同的类加载器?