Java setPreferredSize() 通过引用

Posted

技术标签:

【中文标题】Java setPreferredSize() 通过引用【英文标题】:Java setPreferredSize() by referance 【发布时间】:2015-06-05 05:42:57 【问题描述】:

我正在尝试创建一个可动画的 JPanel,并且来自 C 我创建了一个 Animator 对象,它增加了一个 Double 对象来帮助解决这个问题。

我想传入一个对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;
    

【问题讨论】:

【参考方案1】:

您不能直接执行此操作,但如果将 JPanel 传递给该方法是一种选择,您可以这样做。例如:

public static void updateSize(JPanel panel)

    panel.setPreferredSize(new Dimension(100, 100));

【讨论】:

是的,我希望有一种通用的动画值方式,这样我就可以为这些字段创建动画并同时更新它们,而不是显式更新大小、位置等。

以上是关于Java setPreferredSize() 通过引用的主要内容,如果未能解决你的问题,请参考以下文章

为什么setPreferredSize不会改变按钮的大小?

java中在如何设置JPanel等组件的大小

Java设置 JPanel 宽度

Java中JButton常用设置

如何设置java中panel的大小?

在JLabel上设置大小取代了java中的其他组件