【问题标题】:Read the value of a JSlider读取 JSlider 的值
【发布时间】:2013-05-16 12:01:10
【问题描述】:

如何读取 JSlider 的值?

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

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

代码如下:

设置滑块(在 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);

【问题讨论】:

  • “这是代码:” WindowListener 到底与此有什么关系?为了尽快获得更好的帮助,请发帖SSCCE
  • @AndrewThompson 我是从设置 Jslider 的教程中得到的,我的知识很薄弱,我正抓着稻草
  • 通过阅读链接让您的知识更加丰富。 ..和JSlider 有两个大写字母。如果您无法拼写,请复制/粘贴。
  • 你能运行示例here吗?

标签: java swing jlabel windowlistener changelistener


【解决方案1】:

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

我相信您不需要像这样编写以下代码来获取值。 (使用 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”。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多