2013-05-16 39 views
0

如何阅读JSlider的价值?阅读JSlider的价值

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

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

下面是代码:

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

的ChangeEvent:

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


    } 
}  

,然后该行设置一个JLabel作为值:

sleepSense2 = String.valueOf(sleepSense); 
+1

*“这里是代码:”*“WindowListener”与地球有什么关系?为了更快地获得更好的帮助,请发布[SSCCE](http://sscce.org/)。 –

+0

@AndrewThompson我从建立Jslider的教程中学到了它,我用我苗条的知识抓着吸管 – Phil

+1

通过阅读链接使你的知识变得更加丰富。 ..和'JSlider'有两个大写字母。如果你不能拼写它,复制/粘贴。 –

回答

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”的任何地方。