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

JSlider旋钮未更新(基本Java)

阮健
2023-03-14

我正在Java中实现一个简单的水平JSlider。没有刻度线之类的东西。可能是人类所能想象的那么简单。

当我试图通过鼠标拖动JSlider左右“移动”它时,它的数值确实会更新(我设置了system.outprint语句来报告滑块的变化值,这些值看起来很好)。

共有1个答案

慕容修伟
2023-03-14

对我来说似乎工作得很好,请贴SSCCE来显示具体的问题:

import java.awt.BorderLayout;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JSlider;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;
import javax.swing.UIManager.LookAndFeelInfo;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;

public class SwingSliderExample extends JPanel {

    public SwingSliderExample() {

        super(true);
        this.setLayout(new BorderLayout());
        final JSlider slider = new JSlider(JSlider.HORIZONTAL, 0, 50, 25);

        slider.setMinorTickSpacing(2);
        slider.setMajorTickSpacing(10);
        slider.setPaintTicks(true);
        slider.setPaintLabels(true);

        // We'll just use the standard numeric labels for now...
        slider.setLabelTable(slider.createStandardLabels(10));

        slider.addChangeListener(new ChangeListener() {
            @Override
            public void stateChanged(ChangeEvent ce) {
                if (!slider.getValueIsAdjusting()) {//no adjustments are taking place thus we know the value is final
                    System.out.println(slider.getValue());
                }
            }
        });

        add(slider, BorderLayout.CENTER);
    }

    public static void main(String s[]) {
        SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
                try {
                    for (LookAndFeelInfo info : UIManager.getInstalledLookAndFeels()) {
                        if ("Nimbus".equals(info.getName())) {
                            UIManager.setLookAndFeel(info.getClassName());
                            break;
                        }
                    }
                } catch (Exception e) {
                    // If Nimbus is not available, you can set the GUI to another look and feel.
                }
                JFrame frame = new JFrame("Slider Example");
                frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                frame.add(new SwingSliderExample());
                frame.pack();
                frame.setVisible(true);
            }
        });
    }
}

参考:

  • http://www.java2s.com/code/java/swing-jfc/anexampleofjsliderwithdefaultlabels.htm
 类似资料:
  • 问题内容: 我需要自定义JSlider的旋钮。我需要将自己的旋钮图像放在Jslider的默认旋钮上。问题是当前有两个旋钮在响应。一个是我自己的旋钮,另一个是默认旋钮。请告诉我如何隐藏默认旋钮或任何其他解决方案。 下面的代码用于执行此操作。 感谢Jyoti 问题答案: 要隐藏旋钮,请使用空白图标覆盖UIManager的属性,如下所示:

  • 我正在做一个计数计时器使用按钮开始和停止。 我需要帮助解决这个...当我按下“Start”按钮时,它可以工作(使用)但是不会为我更新。 但是,如果将放在而不是在settext会更新...但我没有按“开始”键。如何使setText在“开始”按钮被按下后更新?

  • 输出旋钮的转动位置(0~100) 用法 Your browser does not support the video tag. 案例:保险箱 说明:使用旋钮制作密码器,通过显示屏显示密码。输入密码正确后指示灯亮起,按下按钮保险箱被开启。 所需模块:电源、蓝牙模块、按钮、旋钮、显示屏、双舵机驱动、舵机驱动包、转接线10cm。

  • 旋钮可以调节数值输入的大小,完成对亮度、声音频率或速度大小的控制。 净重量:8.2g 体积:24×24×22.5mm 参数 使用寿命:>10000次 工作电压:DC 5V 抗跌落能力:1.5m 工作温度:-10℃~55℃ 工作湿度:<95% 特点 金属旋钮组件,大幅度提高耐用性。

  • 我正在编写一个flutter应用程序,它当前的版本是0.7.0,我已经在中指定了这个版本,并且调试APK已经在更新的版本上,但是发布APK没有更新,即使在'flutter build APK'或'flutter run-release'之后也没有更新。 释放APK: 正如您在图像上看到的,版本名是0.6.0,而不是0.7.0 调试APK: 在debug apk中,版本为0.7.0 pubspec.