2015-03-31 4 views
0

Я пытаюсь создать анимационную JPanel и, исходя из C, создал объект Animator, который увеличивает объект Double, чтобы помочь с этим.Java setPreferredSize() по ссылке

Я хотел бы передать ссылку на предпочтительную ширину полосы JPanel и изменить ее непосредственно. Это возможно? Я понимаю, что 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