Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JSlider getValueIsAdjusting奇数行为_Java_Swing_Jslider_Jspinner_Changelistener - Fatal编程技术网

Java JSlider getValueIsAdjusting奇数行为

Java JSlider getValueIsAdjusting奇数行为,java,swing,jslider,jspinner,changelistener,Java,Swing,Jslider,Jspinner,Changelistener,…或者我的编程是一种奇怪的行为 我正在尝试创建一个我在程序中经常使用的类。它是一个创建JPanel控件的类,该控件在一个窗格的顶部包含一个Jlabel,在另一个窗格中包含一个JSlider和JSpinner。我希望JSpinner在JSlider发生变化时发生变化,反之亦然。我希望他们的价值相互联系。这是为了JSpinner微调JSpinner选择 以下是类别代码(“ij”导入用于政府的ImageJ应用程序): 这就是所谓的: LabeledSliderSpinner lss=新的Labeled

…或者我的编程是一种奇怪的行为

我正在尝试创建一个我在程序中经常使用的类。它是一个创建JPanel控件的类,该控件在一个窗格的顶部包含一个Jlabel,在另一个窗格中包含一个JSlider和JSpinner。我希望JSpinner在JSlider发生变化时发生变化,反之亦然。我希望他们的价值相互联系。这是为了JSpinner微调JSpinner选择

以下是类别代码(“ij”导入用于政府的ImageJ应用程序):

这就是所谓的:

LabeledSliderSpinner lss=新的LabeledSliderSpinner(“归巢线”,minx,x,maxx)

在stateChanged方法中,我确定当它到达getValueIsAdjusting测试时,它甚至没有完成stateChanged方法。它只是回到主功能。滑块旋钮移动。微调器值不会更改。我甚至在getValueIsAdjusting测试中打开了一个对话框。它永远进不去。我尝试打开一个对话框作为getValueIsAdjusting测试的else条件,但它从未打开任何一个对话框。它只是从stateChanged()返回

我可以使用更好的方法来确定调用stateChanged是因为滑块还是微调器

在这种情况下可能会有所帮助


效果很好!谢谢我仍然想知道我的错在哪里。不客气。我不确定,但我想你也需要调整一下。
import ij.*;
import ij.process.*;
import ij.gui.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;

 public class LabeledSliderSpinner extends JPanel implements ChangeListener {

JPanel sspanel = new JPanel();
JSlider slider;
SpinnerModel model;
JSpinner spinner;

public LabeledSliderSpinner() {}

public LabeledSliderSpinner(String label, int left, int x, int right) {

    JLabel sslabel = new JLabel(label);

    JSlider slider = new JSlider(JSlider.HORIZONTAL, left, right, x);
    slider.setMajorTickSpacing(25);
    slider.setMinorTickSpacing(5);
    slider.setPaintTicks(true);
    slider.setPaintLabels(true);
    slider.setPaintTrack(true);
    slider.setVisible(true);

    slider.addChangeListener(this);

    model = new SpinnerNumberModel(x, left, right, 1);
    JSpinner spinner = new JSpinner(model);
    spinner.setEditor(new JSpinner.NumberEditor(spinner, "####"));

    spinner.addChangeListener(this);

    sspanel.add(slider);
    sspanel.add(spinner);

    add(sslabel);
    add(sspanel);
    setVisible(true);
}

public void stateChanged(ChangeEvent e) {
    String a = "";

    Object o = e.getSource();
    Class c = o.getClass();
    String controlName = c.getName();


    if (controlName == "javax.swing.JSpinner") {
// not coded yet
    }

    else 

    if (controlName == "javax.swing.JSlider") {
        if (!slider.getValueIsAdjusting()) {
            int fps = (int)slider.getValue();
            spinner.setValue(new Integer(fps));
        }
    }

}
}