gpt4 book ai didi

java - 没有从 JSlider 获得值(value)

转载 作者:行者123 更新时间:2023-11-29 08:06:06 34 4
gpt4 key购买 nike

我在我的程序中使用了 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 only when user has stopped moving the slider
if (!source.getValueIsAdjusting())
{
frame_no=(int) source.getValue()-1;
if(frame_no<0)
frame_no=0;
}
....
}

发生的事情是,无论何时调用 ChangeListener,程序都会跳过 if block ,并转到之后的代码。我不明白为什么会这样。我无法从 JSlider 获得正确的值。请帮忙!!

PS:不知道是不是这个原因,最近我设置了JSlider的UI,在我点击的地方打勾。我不知道这是否对此负责。这是代码:

slider.setUI(new MetalSliderUI() {
protected void scrollDueToClickInTrack(int direction) {
int value = HEVC_Analyzer.slider.getValue();

value = this.valueForXPosition(HEVC_Analyzer.slider.getMousePosition().x);
HEVC_Analyzer.slider.setValue(value);
}
});

最佳答案

一定是你的代码有问题,因为它在这个例子中工作正常:

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();
}
});
}
}

关于java - 没有从 JSlider 获得值(value),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11153621/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com