gpt4 book ai didi

java 组件的 getSize() 返回负值

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:06:13 24 4
gpt4 key购买 nike

我有一个有趣的情况,我间歇性地从调用 JLabel 的方法 getSize() 得到负值。我想调整 JLabel 的大小以获取尽可能大的空间,但我经常把它倒过来,就像在 this question 中一样。 .似乎在获得负值后的一瞬间,正确的值就可用了。我几乎可以肯定这是由我糟糕的 GUI/逻辑线程架构引起的线程竞争问题,但是,我注意到如果我删除 this我对父级 JPanel 所做的解决方法,问题消失了。

我已经尝试在赋值时添加一个同步块(synchronized block),我之前做过 jlabel.verify() 但没有任何帮助。不幸的是,我真的需要保留我提到的解决方法。

我将不胜感激解决此问题的任何指导,在此先感谢。

截图如下:

http://i.stack.imgur.com/YAmTy.png

最佳答案

发生这种情况的唯一方法是,如果另一个进程在分配 componentWidth 变量的时间和您读取其值的时间之间更改 jlabel。一种可能的情况是 jlabel 的初始化发生在后台线程中,并且在您分配 componentWidth 变量时尚未完成。

关于java 组件的 getSize() 返回负值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21143563/

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