小编典典

图像无法更新其他组件(MVC)

java

import java.awt.event.ActionListener;
import java.util.;
import java.awt.
;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.event.ActionEvent;
import java.awt.event.AdjustmentListener;
import java.awt.event.AdjustmentEvent;

我还有其他几个框架(两个只是在打孔数字,另一个也是滚动条)。我可以使用其他组件来更新此视图(这基本上会根据温度标度显示一个图像框)。同样,我可以从该视图更新其他组件。

但是 (编辑),栏确实移动了,但是图像保持不变....有人可以看到错误吗?我对此表示感谢,谢谢!


阅读 264

收藏
2020-11-30

共1个答案

小编典典

因为你要更换标签,你需要remove()的组件和validate()Container。或者,只需更换图标即可。

附录:我认为后一种方法是可取的。缺少图像和剩余的代码,让我们从以下示例开始:初始化标签和滑块:

final JLabel label = new JLabel(pig);
final JSlider slider = new JSlider();

然后在侦听器中,使用setIcon()

@Override
public void stateChanged(ChangeEvent e) {
    if (slider.getValue() < 50) {
        label.setIcon(pig);
    } else {
        label.setIcon(dog);
    }
}
2020-11-30