2013-05-16 3 views
0

Как прочитать значение JSlider?Прочитайте значение 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) { 
    } 

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 (!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» где-нибудь в вашей программе.

 Смежные вопросы

  • Нет связанных вопросов^_^