【发布时间】:2012-01-18 19:36:34
【问题描述】:
首先,很抱歉,但要为此重建一个 SSCCE 真的很难,尽管我认为我可以很好地解释这种情况并解决我的问题,
我的情况是这样的:我有一个用作状态指示器的 JLabel(例如,它将显示“正在加载...”或“就绪”),我在 MouseAdapter 之前调用了 setText 方法调用方法来执行实际操作。但是,JLabel 文本永远不会更改,除非我执行诸如 call JOptionPane.showMessageDialog() 之类的操作,在这种情况下文本会更新。
那么,是否有人对我如何解决这种情况有任何建议,而无需执行诸如无缘无故(什么会)显示消息框之类的操作?
提前致谢
【问题讨论】:
-
很抱歉,这似乎是个坏建议,但您是否尝试在更改标签文本后在框架上调用
revalidate()或repaint()? -
糟糕。无视我之前的评论。确保您没有在答案中提到的 EDT 上执行任务。
-
我认为@fireshadow52 的建议是不错的尝试,最好使用 swingworker,但如果您只是进行原型设计,您可以先尝试一下。
-
@fireshadow52 不,这不是一个坏建议。事实上,我确实尝试过调用这些方法,但显然它没有实现任何效果;但你不知道!和 AKJ,老实说,我不是在设计原型 - 我需要一个非常适合工作的解决方案,所以你能以某种形式为我提供答案/示例吗?
-
放弃最后一个请求作为示例,@Unai Vive 提供了一个并帮助了我!
标签: java swing text jlabel concurrency