java - 读取 JSlider 的值

标签 java swing jlabel windowlistener changelistener

如何读取 JSlider 的值?

我在程序中使用 slider ,这是我以前没有使用过的东西,但我正在努力显示对其所做的更改!

问题是,当您打开程序时,JLabel 显示 slider 的值 (50),但当您更改该值时,标签不会显示。

这是代码:

设置 slider (在 setUpMenuItems 类中):

sensitivitySlider2 = new JSlider();//direction , min , max , current
sensitivitySlider2.setFont(new Font("Calibri",Font.BOLD,10));
sensitivitySlider2.setMajorTickSpacing(10);
sensitivitySlider2.setMinorTickSpacing(1);
sensitivitySlider2.setPaintLabels(true);
sensitivitySlider2.setPaintTicks(true);
sensitivitySlider2.setPaintTrack(true);
sensitivitySlider2.setAutoscrolls(true);
sensitivitySlider2.setBackground(Color.WHITE);

sensitivitySlider2.setBounds (15,200,250,100);

propertiesPanel.add(sensitivitySlider2);

建立监听器:

private void registerComponentsForEvents()
  {
    // Register all the JButton objects for action events

    miniButton.addActionListener (this);
    applyButton.addActionListener (this);
    exitButton.addActionListener (this);
    sensitivitySlider2.addChangeListener(this);


  }

窗口监听器和声明方法以使其具体化:

void addWindowListener(Window w) {
      w.addWindowListener(this);
    }

//React to window events.


    public void windowOpened(WindowEvent e) {
    }

    public void windowClosing(WindowEvent e) {
    }

    public void windowClosed(WindowEvent e) {
    }

    public void windowActivated(WindowEvent e) {
    }

    public void windowDeactivated(WindowEvent e) {
    }

    public void windowDeiconified(WindowEvent e) {
    }

    public void windowIconified(WindowEvent e) {
    }

更改事件:

  public void stateChanged(ChangeEvent e) {
          JSlider source = (JSlider)e.getSource();
          if (!source.getValueIsAdjusting()) {
              int sleepSense = (int)source.getValue();


    }
}    

然后这一行将 JLabel 设置为值:

sleepSense2 = String.valueOf(sleepSense);

最佳答案

这是一个老话题,但是,我会分享我的想法。

我相信您不需要像这样编写以下代码来获取值。 (使用if语句)

if (!source.getValueIsAdjusting()) {
          int sleepSense = (int)source.getValue();

您可以满足以下条件

JSlider mySlider= new JSlider();
mySlider.addChangeListener(new ChangeListener(){
          public void stateChanged(ChangeEvent e) {
              int sleepSense = mySlider.getValue();
    }

然后您可以在程序中的任何位置使用值“sleepSense”。

关于java - 读取 JSlider 的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16586867/

相关文章:

java - JTable 日期列排序卡住

java - 从外部类处理 JFrame 组件的最佳方法

java - 如何在 JButton 工作期间更改 JLabel 文本?

java - JLabel 图标抗拒改变

Java:为什么这个列表落后于我的游戏 “Out of Memory”

java - Cloud endpoint api 中的函数 User.getUserId() 为不为 null 的用户对象返回 null

java - 打开新的 jFrame 时清空 ArrayList

来自主命令行的 Java 模态对话框

java - 我很难确定 Loop While DO 的作用范围

java - 对绘制的对象进行动画处理