[英]The graphics is drawing on top of the UI, in java swing,
當我在paint()方法內的Jpanel上繪制時 (通過繼承JPanel)
圖形出現在我的按鈕和其他UI組件的頂部,
在不可見的組件中,那么如何在圖形上方繪制組件呢?
首先看一下在AWT和Swing中 執行自定義繪畫和繪畫
繪畫方法
適用於AWT輕量級組件的規則也適用於Swing組件-例如,在渲染時將調用paint()
-除了Swing進一步將paint()
調用分解為三個單獨的方法之外,這三個方法在以下順序:
protected void paintComponent(Graphics g)
protected void paintBorder(Graphics g)
protected void paintChildren(Graphics g)Swing程序應該重寫
paintComponent()
而不是重寫paint()
。 盡管該API允許這樣做,但是通常沒有理由覆蓋paintBorder()
或paintComponents()
(如果這樣做,請確保您知道自己在做什么!)。 這種分解使程序更容易僅覆蓋需要擴展的繪畫部分。 例如,這解決了前面提到的AWT問題,其中調用super.paint()
的失敗阻止了任何輕量級子項的出現。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.