2015-03-31 106 views
0

我正在嘗試創建一個動畫JPanel並且來自C我創建了一個Animator對象,該對象遞增一個Double對象以幫助完成此操作。Java setPreferredSize()參考

我想傳遞一個對JPanel的preferredSize寬度的引用,並讓它直接修改這個寬度。這可能嗎?我知道Java並沒有引用原始類型,即使它是這樣做的,只是改變它的值可能不會適當地更新視圖。

private class Animator { 
    private Double value; 
    private Double increment; 
    private Double target; 

    public Animator(Double value, Double increment, Double target) { 
     this.value = value; 
     this.increment = increment; 
     this.target = target; 
    } 

    public boolean step() { 
     value += increment; 
     if (value >= target) { 
      value = target; 
      return false; 
     } 
     return true; 
    } 
} 

回答

0

您不能直接這樣做,但如果將JPanel傳遞給該方法是一個選項,則可以這樣做。對於前:

public static void updateSize(JPanel panel) 
{ 
    panel.setPreferredSize(new Dimension(100, 100)); 
} 
+0

是的,我希望能有動畫值,這樣,而不是明確的更新大小,位置等,我可以只創建動畫師對這些領域,並同時更新它們所有的通用方式。 – BenJacob 2015-03-31 19:21:11