将JSlider旋钮绑定到外部int值

时间:2018-07-09 19:04:59

标签: java swing actionlistener jslider

我的 ServerSetup smtpServerSetup = ... ServerSetup pop3ServerSetup = ... GreenMail greenMail = new GreenMail(new ServerSetup[]{smtpServerSetup, pop3ServerSetup}); greenMail.start(); // Starts both smtp and pop3 有一个JSlider作为属性。 iconScaleManager拥有一个iconScaleManager,该值对应于int个刻度。 JSlider由另一个类int修改,该类添加在2个JButton上。

目标是:我希望旋钮单独移动到与刻度线相对应的ActionListener的实际值。 我想我需要绑定值或触发事件,但是我不知道该怎么做。

当然,我在JSlider上添加了一个ChangeListener:

int

1 个答案:

答案 0 :(得分:0)

为简化使用,我使按钮的ActionListener更改了JSlidersetValue(iconScaleManager.getScaleIndex())actionPerformed())的状态。 (这比我想象的要简单)。感谢@MadProgrammer。

public class ZoomListener implements ActionListener {
    private boolean zoomIn = false;
    private JSlider zoomSlider = null;
    private IconScaleManager iconScaleManager = null;

    public ZoomListener(boolean zoom, JSlider slider, IconScaleManager renderer) {
        zoomIn = zoom;
        zoomSlider = slider;
        iconScaleManager = renderer;
    }

    @Override
    public void actionPerformed(ActionEvent e) {
        iconScaleManager.scaleButton(zoomIn);
        System.out.println(iconScaleManager.getScaleIndex());
        zoomSlider.setValue(iconScaleManager.getScaleIndex());
    }
}