Java 没有从JSlider获取值
我在我的程序中使用了一个JSlider,并为它实现了一个ChangeListenerJava 没有从JSlider获取值,java,swing,jslider,changelistener,Java,Swing,Jslider,Changelistener,我在我的程序中使用了一个JSlider,并为它实现了一个ChangeListener public void stateChanged(ChangeEvent e) { JSlider source=(JSlider) e.getSource(); frame_value.setText(Integer.toString(source.getValue())); //Condition to change the frame_no onl
public void stateChanged(ChangeEvent e)
{
JSlider source=(JSlider) e.getSource();
frame_value.setText(Integer.toString(source.getValue()));
//Condition to change the frame_no only when user has stopped moving the slider
if (!source.getValueIsAdjusting())
{
frame_no=(int) source.getValue()-1;
if(frame_no<0)
frame_no=0;
}
....
}
您的代码中一定有错误,因为在本例中它工作正常:
import javax.swing.*;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
public class SliderChangeEffect extends JFrame
{
private JSlider slider;
private int count = 0;
private ChangeListener changeListener = new ChangeListener()
{
public void stateChanged(ChangeEvent ce)
{
JSlider slider = (JSlider) ce.getSource();
if (!slider.getValueIsAdjusting())
System.out.println(slider.getValue());
}
};
private void createAndDisplayGUI()
{
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationByPlatform(true);
JPanel contentPane = new JPanel();
contentPane.setOpaque(true);
slider = new JSlider(0, 10, 5);
slider.setMajorTickSpacing(2);
slider.setMinorTickSpacing(1);
slider.addChangeListener(changeListener);
contentPane.add(slider);
getContentPane().add(contentPane);
pack();
setVisible(true);
}
public static void main(String... args)
{
SwingUtilities.invokeLater(new Runnable()
{
public void run()
{
new SliderChangeEffect().createAndDisplayGUI();
}
});
}
}
您的代码中一定有错误,因为在本例中它工作正常:
import javax.swing.*;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
public class SliderChangeEffect extends JFrame
{
private JSlider slider;
private int count = 0;
private ChangeListener changeListener = new ChangeListener()
{
public void stateChanged(ChangeEvent ce)
{
JSlider slider = (JSlider) ce.getSource();
if (!slider.getValueIsAdjusting())
System.out.println(slider.getValue());
}
};
private void createAndDisplayGUI()
{
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationByPlatform(true);
JPanel contentPane = new JPanel();
contentPane.setOpaque(true);
slider = new JSlider(0, 10, 5);
slider.setMajorTickSpacing(2);
slider.setMinorTickSpacing(1);
slider.addChangeListener(changeListener);
contentPane.add(slider);
getContentPane().add(contentPane);
pack();
setVisible(true);
}
public static void main(String... args)
{
SwingUtilities.invokeLater(new Runnable()
{
public void run()
{
new SliderChangeEffect().createAndDisplayGUI();
}
});
}
}
只需使用String.valueOf()和event.MouseReleased()
只需使用String.valueOf()和event.MouseReleased()
为了更快地获得更好的帮助,请发布一条。@AndrewThompson我只在此处发布了问题部分。。问题是这部分代码没有执行。.“我只在此处发布了问题部分。”在您知道答案之前,您如何知道代码是问题的原因?我不打算仔细研究不可编译的代码片段来确定这里是否会出现这种情况,……但你可能会幸运的。否则,请发布一个SSCCE。为了更快地获得更好的帮助,请发布一个。@AndrewThompson我只在这里发布了问题部分。。问题是这部分代码没有执行。.“我只在这里发布了问题部分。”在您知道答案之前,您如何知道代码是问题的原因?我不打算仔细研究不可编译的代码片段来确定这里是否会出现这种情况,……但你可能会幸运的。否则,发布一个SSCCE。是的,我也在等待SSCCE,但因为我没有一个,所以尝试了我的手,它正在工作,所以将我的代码粘贴在这里:-)是的,我也在等待SSCCE,但是因为我没有一个,所以尝试了我的手,它正在工作,所以将我的代码粘贴在这里:-)
private void jSlider1MouseReleased(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
try {
String valueOf = String.valueOf(jSlider1.getValue());
jLabel1.setText(valueOf);
} catch (Exception ex) {
ex.printStackTrace();
}
}