2015-05-31 18 views
0

我試圖只運行一個方法一次當我在paint()方法中調用它時,但是當我通常調用它時,它只是反覆運行。 例子:在paint()(Java)中只運行一次方法

private void someMethod() 
{ 
System.out.println ("Success"); 
} 
@Override 
public void paintComponent (Graphics g) 
{ 
someMethod(); 
repaint(); 
} 

這將輸出 「成功」 永遠,我只能輸出一次。

+3

'的paintComponent(....)'當組件粉刷被調用,調用'重繪()'這裏面方法將產生無限遞歸。 – Titus

+1

實際上'repaint'方法調用'paintComponent' mehod。所以當你在'paintComponent'中調用'repaint'時,它會進入無限循環。因此,它將繼續打印'Success' – Blip

+0

使用全局布爾值來指示此方法已被調用,並檢查方法內的布爾值 – user

回答

0

我想你應該寫同樣的橋

試試這個:

public class someClass{ 
    private boolean hasDone = false; 
    public void paintComponent(Graphics g){ 
     super.paintComponent(g); 
     if(!hasDone){ 
      someMethod(); 
      hasDone = true; 
     } 
    } 
}