java中repaint是什么意思_Java 7中的EDT之外的Swing repaint()方法是否仍然安全使用?...

我知道,即使使用Swing的线程模型,它也曾经被认为是安全的从任何线程调用repaint()和其他一些方法,但是最近我在评论中被告知这不是这样.

谷歌发现很多较老的讨论说这是安全的,但最近没有.所有曾经说过安全的官方参考文献似乎已经消失了,我在各种论坛上发现了几个人讨论如何不再安全.

我找不到任何官方确认是否是或者不是 – 我真的很想看到一些解释变化的逻辑如果已经改变的东西.考虑到破坏现有应用程序的风险有多严重,这似乎是一个非常奇怪的功能.

我正在寻找一个官方参考链接(即Javadoc,oracle教程或源代码链接),指出这些方法是否仍然可以从任何线程调用.

参考这个问题在这里:

从现在消失的太阳页面引用一句话:

The following JComponent methods are safe to call from any thread: repaint(),revalidate(),and invalidate(). The repaint() and revalidate() methods queue requests for the event-dispatching thread to call paint() and validate(),respectively.

这符合我的理解,但我现在找不到该页面或任何类似的页面,并且我看到几个人的未经证实的谣言说它已经不再安全了.但另一方面,我没有任何明确的说法,这个功能已经改变了.

更改备注

什么可以帮助解决这个问题是Oracle关于Swing线程处理变化的官方声明.我发现“Java 7的变化”页面,但是根本没有提到它,这些页面都没有以任何方式提到线程或EDT:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值