获取JSlider的输入和更改

时间:2014-01-21 14:54:35

标签: java jpanel actionlistener joptionpane jslider

我需要使用JSlider来实时输入,这意味着它将在不按任何按钮的情况下返回输入。我有滑块的这段代码:

JPanel panel = new JPanel();
            JSlider js = new JSlider(JSlider.VERTICAL, 0, 20, 10);
            js.setMajorTickSpacing(2);
            js.setPaintTicks(true);
            Hashtable labelTable = new Hashtable();
            labelTable.put(new Integer(js.getMinimum()), new JLabel("x0"));
            labelTable.put(new Integer((js.getMinimum() + js.getMaximum()) / 2), new JLabel("x1"));
            labelTable.put(new Integer(js.getMaximum()), new JLabel("x2"));
            js.setLabelTable(labelTable);
            js.setPaintLabels(true);
            panel.add(js);
            int result = JOptionPane.showConfirmDialog(null, panel, "choose size", JOptionPane.YES_OPTION);

甚至可以这样做吗?我想过使用actionListener但是我没有成功。

1 个答案:

答案 0 :(得分:3)

可以使用ChangeListener,例如

slider.addChangeListener(new ChangeListener() {

    @Override
    public void stateChanged(ChangeEvent e) {
        JSlider slider = (JSlider) e.getSource();
        int value = slider.getValue();
        ...
    }
});