gpt4 book ai didi

java - 更新 JComponent 以反射(reflect)对象更改

转载 作者:行者123 更新时间:2023-12-01 22:45:52 26 4
gpt4 key购买 nike

我在界面中有一系列 JLabel,用于显示对象的属性。如果所述对象被同一类的另一个对象替换,是否可以自动更新 JComponent?这种方法会被视为不好的做法吗?例如,考虑以下内容:

String stringToBeDisplayed = new String("String 1");
JLabel label = new JLabel(stringToBeDisplayed);
stringToBeDisplayed = new String("String 2");
//*Refresh label to show string change*

我知道可以使用 JLabel.setText() 设置 JLabel 的文本或者可以替换标签,但我很懒,这些方法对于许多 JComponent 来说有点不方便!

最佳答案

您尝试执行的操作甚至不起作用,因为重新初始化 stringToBeDisplayed 不会影响您将其传递给的任何内容 - 在本例中为 JLabel() 构造函数。

执行您想要的操作的方法是调用JLabel.setText()。如果您有很多组件,则必须进行大量调用。您也许可以包装其中一些,以便可以调用其中一个方法来批量更新其中许多,但这是您必须这样做的方式。您还可以通过将 JLabel 放入 Collection 或数组并使用循环来减少输入。

虽然,理论上,您可以子类化或复合 JLabel 并添加一个接受某些 String 包装对象的方法,您将拥有为其编写类,然后您可以让该类接受更改监听器(观察者模式),并在更改时更新 JLabel

关于java - 更新 JComponent 以反射(reflect)对象更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25383059/

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