我想为我的滑块添加一个按钮。我想要的是当我点击按钮时,滑块的值将保存在一个变量中。但是我总是在使用ActionListener的时候出现错误。任何人都可以请帮忙。这里是我的滑代码:Java:为滑块添加一个“接受”按钮
import javax.swing.*;
import javax.swing.event.*;
import java.awt.*;
import java.util.Hashtable;
public class SliderSample {
public static void main(final String args[]) {
Runnable runner = new Runnable() {
public void run() {
JFrame frame = new JFrame("Sample Sliders");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
ChangeListener listener = new SliderChangeListener();
JSlider js4 = new JSlider(1,5);
Hashtable<Integer, JComponent> table = new Hashtable<Integer, JComponent>();
table.put(1, new JLabel("1"));
table.put(2, new JLabel("2"));
table.put(3, new JLabel("3"));
table.put(4, new JLabel("4"));
table.put(5, new JLabel("5"));
js4.setLabelTable(table);
js4.setPaintLabels(true);
js4.addChangeListener(listener);
frame.add(js4, BorderLayout.CENTER);
frame.setSize(400, 300);
frame.setVisible(true);
}
};
EventQueue.invokeLater(runner);
}
public static class SliderChangeListener implements ChangeListener {
public void stateChanged(ChangeEvent changeEvent) {
Object source = changeEvent.getSource();
JSlider theJSlider = (JSlider)source;
if (!theJSlider.getValueIsAdjusting()) {System.out.println ("Slider changed: " + theJSlider.getValue());
}
}
}
}
您能提供有关错误的更多信息吗?例如,堆栈跟踪非常有用。 – Henrik
@Henrik我是新来的java。我试过的是添加一个JButton后:frame.setVisible(true); 之后,我把一个ActionListener fot这个按钮像这样: accept.addActionListener(this); 它给了我一个关于“this”的错误。 – user1913798
我强烈建议使用更好的变量命名。从长远来看,它的维护只是现在的痛苦,再加上它看起来很丑。看看[命名约定](http://www.oracle.com/technetwork/java/javase/documentation/codeconventions-135099.html#367) – eSuarez