gpt4 book ai didi

java - Container.getComponents() 是否返回对原始组件的引用?

转载 作者:行者123 更新时间:2023-11-30 11:54:51 25 4
gpt4 key购买 nike

我正在使用 Container.getComponents() 获取存储在容器内的组件数组。然后,我正在修改这些组件之一(恰好是 JLabel),但更改未显示在 GUI 上。

所以我在想,也许该方法会为每个组件创建新实例,从而阻止我对原始组件进行更改?

这是我的代码:

Component[] components = source.getComponents();
if(components.length >= 2) {
if(components[1] instanceof JLabel) {
JLabel htmlArea = (JLabel) components[1];
htmlArea.setText("<html>new changes here</html>");
htmlArea.revalidate();
}
}

最佳答案

这要么是代码之外的另一个问题,要么是您从错误的线程执行此操作。

对 Swing 组件的任何更改都应该在事件分发线程中完成。通常最容易用 EventQueue.invokeLater(...)(或 SwingUtilities.invokeLater,这是一样的)包围变化的代码。

并确保您的组件在屏幕上确实可见。

关于java - Container.getComponents() 是否返回对原始组件的引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5371349/

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