java - 如何获取 jframe 上存在的 jbutton 的数量

标签 java swing

我有这段代码,我试图通过它来计算/获取 jframe 上存在的 jbutton 的数量

我在 jframe 上有 7 个 jbutton 和 2 个 jtext 字段,但输出为 1

Component c=this;
Container container = (Container) c;
int x = container.getComponentCount();
System.out.println(x);

我能得到一些指导吗

最佳答案

获取 JFrame 中的所有组件(提示:使用递归完成 here )。

public static List<Component> getAllComponents(final Container c) {
    Component[] comps = c.getComponents();
    List<Component> compList = new ArrayList<Component>();
    for (Component comp : comps) {
      compList.add(comp);
      if (comp instanceof Container) {
        compList.addAll(getAllComponents((Container) comp));
      }
    }
    return compList;
  }

然后测试是 jbutton 的组件。

int count =0;
for(Component c : getAllComponents(container)){
  if(c instanceof JButton) count++;
}

关于java - 如何获取 jframe 上存在的 jbutton 的数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18744251/

相关文章:

java - JTree单节点前台

java - JTextPane 的 setContentType ("text/html")无法正常工作

java - 如何从 JTable 1 到 JTable 2 获取值?

Java:为 GZIPOutputStream 的 Deflater 使用 setDictionary 时出现 CRC 错误

java - Java 中的 Web 浏览器控制?

java - ExecutorService 变慢,使我的电脑陷入困境

java - 如何使用maven创建空jar

java - 数组开头的额外元素

java - 在关闭 JFrame 之前我将如何执行函数

Java Swing mousePressed 和 getSource() 未在 JPanel 上显示绘制的形状