Java 获取JPanel中组件的类型

Java 获取JPanel中组件的类型,java,swing,jpanel,components,jradiobutton,Java,Swing,Jpanel,Components,Jradiobutton,我有一个foreach循环,它迭代jPanel中的所有组件,我想获取组件的类型并检查它是否是JRadioButton 这是我尝试的代码: for (Component c : ((Container)jPanel1).getComponents() ) { if(((JRadioButton)c).isSelected() && c.getComponentType()) { if(!listrep.contains(((JRadioButton)

我有一个foreach循环,它迭代jPanel中的所有组件,我想获取组件的类型并检查它是否是JRadioButton

这是我尝试的代码:

 for (Component c : ((Container)jPanel1).getComponents() )
 {
     if(((JRadioButton)c).isSelected() && c.getComponentType()) {
         if(!listrep.contains(((JRadioButton)c).getText())) {
             ((JRadioButton)c).setForeground(new java.awt.Color(204, 0, 0));;
         }
     }
 }
但这行不通


我该怎么做呢?

您可以使用instanceof操作符,但这将为您的代码提供一个完整的计划。最好将感兴趣的组件放在ArrayList中以备参考

或者更好的是,直接从用于将它们绑定在一起的ButtonGroup中获取所选JRadioButton的ButtonModel

ButtonModel selectedModel = buttonGroup.getSelection();
if (selectedModel != null) {
 // use the selected button's model here
}

您可以使用instanceof操作符,但这将为您的代码提供一个完整的计划。最好将感兴趣的组件放在ArrayList中以备参考

或者更好的是,直接从用于将它们绑定在一起的ButtonGroup中获取所选JRadioButton的ButtonModel

ButtonModel selectedModel = buttonGroup.getSelection();
if (selectedModel != null) {
 // use the selected button's model here
}

为了更快地获得更好的帮助,请发布一个。@AndrewThompson:啊,一个MCVE,一个新的给我,谢谢你显示这个链接!为了更快地获得更好的帮助,请发布一个。@AndrewThompson:啊,一个MCVE,一个新的给我,谢谢你显示这个链接!爱那个链接中的引用。爱那个链接中的引用。