当前位置: 首页 > 知识库问答 >
问题:

JSlider GetValueIsRegulation奇行为

宫瀚
2023-03-14

...也许我的程序是奇怪的行为...

我试图创建一个我在程序中经常使用的类。它是一个创建JPanel控件的类,该控件在一个窗格的顶部包含Jlabel,在另一个窗格中包含JSlider和JSpinner。我希望JSlider更改时JSpinner也更改,反之亦然。我想把它们的价值绑在一起。这是为了JSpinner对JSpinner选择进行微调。

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

}
}

在stateChanged方法中,我已经确定,当它到达GetValueIsAdministration测试时,它甚至没有完成stateChanged方法。它只是回到主函数。滑块旋钮移动。旋转器值不变。我甚至在GetValueIsRegulation测试中打开了一个对话框。它永远也进不来。我尝试打开一个对话框,作为GetValueIsAdministration测试的else条件,但它从未打开任何一个对话框。它只是从stateChanged()返回。

我可以用一个更好的方法来确定是因为滑块还是因为旋转器而调用stateChanged。

共有1个答案

谷梁永年
2023-03-14

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

 类似资料:
  • 我有以下代码来解析一个JSON文件: 要处理以下JSON文件: 如果我执行此代码,我将收到以下错误: 所以我开始一步一步地调试应用程序,看看part processing()中的哪个代码部分抛出了这个异常。令人惊讶的是,那里的所有代码都正常执行:没有抛出异常,也没有返回结果I except。 更让我惊讶的是,当我稍微改变第一种方法的代码时,它可以在不产生异常的情况下工作。 我不知道println方

  • 问题内容: 我在GregorianCalendar类中遇到一个奇怪的行为,我想知道我是否真的做得不好。 仅当初始化日期的月份的实际Maximum大于我将日历设置为的月份时,才追加此值。 这是示例代码: 我知道问题是由于日历初始化日期是31天(可能是5月),与设置为2月(28天)的月份混淆了。修复很容易(只需在设置年和月之前将day_of_month设置为1),但是我想知道这确实是想要的行为。有什么

  • 问题内容: 我正在为一个问题而苦苦挣扎,我不明白为什么它不起作用。如何通过将变量传递并转换为? 为什么在顶部代码段中不起作用,但在行下方的底部代码段中起作用? 唯一的区别似乎是添加了一个额外的变量,该变量也被键入为? 问题答案: 该是一种原始类型,同时是一个普通的Java类。您不能在原始类型上调用方法。但是该方法在上可用,如javadoc中所示 有关这些原始类型的更多信息,请参见此处

  • 问题内容: 为什么的到哪里去了? 问题答案: 删除任何字符,并从字符串的开头和结尾。

  • 问题内容: 我认为这是一个正常程序,但这是我得到的输出: 有人可以向我解释一下吗? 问题答案: 这是有据可查的PHP行为,请参阅php.net的foreach页面上的警告。 警告 即使在 foreach 循环之后,仍保留 $ value的 引用和最后一个数组元素。建议通过unset()销毁它。 __ 编辑 尝试逐步了解此处实际发生的情况

  • 问题内容: 我有上面的代码,但我不知道为什么会产生 而不是 非常感谢 问题答案: 使用量词来匹配1个或多个空格,而不是:- 表示匹配0个或多个空格,并且将在每个字符之前匹配一个空字符,并由一个空格代替。