![](/img/trans.png)
[英]Why does my custom Swing component repaint faster when I move the mouse? (Java)
[英]Does Java repaint the components when resize or mouse over?
我既不問如何使用Java swing,也不問有關使用布局管理器的建議。 我很好奇Java的行為方式。
一直以來,這都是一個神話,許多人推測,當您調整框架的大小時,Java會自動重新繪制組件, 或者將鼠標懸停在框架中的組件上。
所以我的問題是 :當我們執行上述操作之一時,Java是否會自動重繪?
有幾篇標題相似的文章,例如: Java在鼠標懸停時重繪組件。
但是沒有人能給出明確的答案,Java是否會根據某些用戶操作(例如調整大小和鼠標懸停)自動進行重新繪制。
一直以來,這都是一個神話,許多人推測
沒有神話或推測。
調整大小時會自動重新繪制組件的顏色
這是有道理的,因為調用了布局管理器,並且大小或位置可能會更改,這意味着某些組件可能需要重新粉刷。
當您將鼠標懸停在框架中的組件上時,會自動重新繪制組件。
這取決於組件。 如果已將MouseListener添加到組件中以進行特殊處理(即,將鼠標懸停在某個按鈕上),則可以重新繪制該組件,否則不會發生任何事情。 但是沒有默認繪畫,除非已將其專門添加為組件的UI的一部分。
這些問題很容易得到驗證。 只需重寫組件的paintCompent()
方法即可在繪制組件時顯示一條消息,並查看會發生什么。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.