2012-07-08 53 views
1

-Hi all!我正在製作一個模擬波浪干擾的Java小程序,我幾乎已經完成了(將在GPL下進行許可)。不過,我有兩個關於AWT塗料循環的問題,我很難找到答案。Overiding AWT和存儲圖形

  1. 我想在按下按鈕時出現一個「約」覆蓋圖。我想要這樣做的方式是用我的靜態消息和圖例對象繪製整個小程序窗口。問題在於阻止AWT組件在不使用remove()的情況下在前臺繪製自己。有沒有辦法阻止AWT暫時吸引自己?

  2. 對於我的駐波模式,我希望在每次駐波達到最大振幅(我可以自己做的所有這些)時計算節點和反節點標記並將其繪製爲輔助圖形,但是會畫到主要圖形(並因此顯示)每個塗料週期。有人可以解釋這樣做的步驟嗎?我想這將涉及創建第二個圖形對象,繪製一次,然後在每個週期將其繪製到主圖形。

如果你能回答我的任何一個問題,我將不勝感激!

乾杯,傑克·阿利森

回答

0

在回答第一個問題:

您不能禁用,如果你在你的代碼已經inlcluded它paint()/paintComponent()方法。如果它在那裏,它就會運行。但是,您可以創建一個標誌,以便只有標誌爲真時,纔會繪製該標誌。讓我告訴你我的意思:

boolean flag; 

... 

public void paintComponent(Graphics comp) { 
    if (flag) { 
     Graphics2D comp2D = (Graphics2D) comp; 
     //drawing statements 
    } 
} 

public void actionPerformed(ActionEvent event) { 
    flag = true; 
    repaint(); 
}