我正在使用 java 和 swing 开发一个小型应用程序,我面临一个问题,可能会让我从头开始做其中的一部分。
在其中一个面板中,我有大约 20 个复选框。到目前为止,变量名称为 jcheckbox1、jcheckbox2 等。我需要遍历所有变量并检索所选变量的文本。问题在于,我使用 NetBeans 通过根据需要拖放元素来开发 GUI,因此我没有将复选框聚合在列表或数组中。鉴于此,是否有可能选择所有复选框并迭代它们以检索选中的复选框的文本值?
如果没有,我应该如何以可以轻松迭代的方式声明它们?我相信一系列复选框本身可能并不难完成,但麻烦似乎来自将它们全部放在正确的位置。我正在使用带有两列的 gridbag,如果有帮助的话。
谢谢!
最佳答案
给定一个Container
,你可以找到所有的子组件,然后检查它们是否是JCheckBox
,然后检查它们是否被选中。
以下示例方法的灵感来自 How to get all elements inside a JFrame? ,并适应您的需求:
public static List<String> manageCheckedCheckboxes(final Container c) {
Component[] comps = c.getComponents();
List<String> checkedTexts = new ArrayList<String>();
for (Component comp : comps) {
if (comp instanceof JCheckBox) {
JCheckBox box = (JCheckBox) comp;
if (box.isSelected()) {
String text = box.getText();
checkedTexts.add(text);
}
}
}
return checkedTexts;
}
关于java - 遍历 Swing 中的所有复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41063002/