gpt4 book ai didi

java - 禁用整个 JPanel 包括其内部的组件

转载 作者:太空宇宙 更新时间:2023-11-04 08:58:47 24 4
gpt4 key购买 nike

目前,通过单个方法调用禁用 JPanel(包括其所有组件),我必须重写其禁用方法,如下所示:

@Override
public void setEnabled(boolean enabled) {
super.setEnabled(enabled);
Component[] components = getComponents();
if (components != null && components.length > 0) {
int count = components.length;
for (int i = 0; i < count; i++)
components[i].setEnabled(enabled);
}
}

有没有标准的方法可以做到这一点?而不是提供我自己的实现?

最佳答案

首先,您可以轻松简化该代码:

@Override
public void setEnabled(boolean enabled) {
super.setEnabled(enabled);
for (Component component : getComponents())
component.setEnabled(enabled);
}
}

这当然会破坏组件的任何单独启用状态。

通常禁用的组件看起来很糟糕,顶部的玻璃 Pane 可以停止指针输入,也许还可以添加更微妙的视觉效果。

您可以采用模型方法。创建每个组件时,将启用状态委托(delegate)给模型。那么您只需要一次状态更改即可更新所有组件。这使您能够拥有任意组并促进更复杂的逻辑。

关于java - 禁用整个 JPanel 包括其内部的组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1447986/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com