簡體   English   中英

paintComponent()外部的圖形形狀(java)

[英]Drawing Shapes outside paintComponent() (java)

我對Java中的圖形是陌生的,並且難以掌握從一種方法(paintComponent())繪制所有圖形的整個概念。 我只是想知道我們是否可以在paintComponent之外繪制圖形。 那有可能嗎? 是否可以在main方法中編寫一行,例如:fillRect(100,100,500,400); 並繪制一個矩形? 如果可能的話,這是Java的傳統做法嗎?

基本上,我在問您是否可以在paintComponent類之外繪制圖形,這是否是常規的。

您可以繪制到BufferedImage ,但是如果要在屏幕上繪制,則通常需要使用paintComponent 您可以將傳遞給paintComponentGraphics實例傳遞給其他類,這些類可以執行更復雜的操作,但是您永遠不要維護該實例的引用或嘗試在繪制循環上下文之外進行繪制。

有關更多詳細信息,請參見“ AWT中的繪畫”和“搖擺執行自定義繪畫

如果您需要對繪制過程進行更多控制,則還可以使用BufferStrategy

有關更多詳細信息,請參見BufferStrategy和BufferCapabilities

您應該知道的事情:

  • Swing使用“被動渲染”方法,這意味着繪畫是在繪畫系統確定需要完成時進行的。 這就是為什么必須在繪制循環的上下文中執行繪制的原因(即-在paintComponent方法中)
  • BufferStrategy使用“主動渲染”方法,可以完全控制繪畫過程,但不能繪畫Swing組件

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM