如何递归禁用 JPanel 中的所有组件?
void setEnabled(Component component, boolean enabled) {
component.setEnabled(enabled);
if (component instanceof Container) {
for (Component child : ((Container) component).getComponents()) {
setEnabled(child, enabled);
}
}
}
请注意,每个组件之前的启用/禁用状态将会丢失,除非您在其他地方跟踪它。
接受的答案适用于组件和一级子组件。 对于无限递归解决方案,请使用以下内容:
private void setEnabledRecursive(boolean enabled, Component... components) {
for (Component component : components) {
component.setEnabled(enabled);
if (component instanceof Container) {
setEnabledRecursive(enabled, component);
}
}
}