2017-10-21 26 views
0

我在我的項目中使用JSlider。而在某處我需要獲取滑塊的值,但getValue()方法不會返回當前的滑塊值。它總是返回默認值。JSlider的GetValue方法不返回當前值?

這裏是我的代碼的相關部分:

this.slider.addChangeListener(new ChangeListener() { 
     @Override 
     public void stateChanged(ChangeEvent e) { 
      // This two lines below are about Cytoscape framework. I am taking a column of a table and convert it to List<String>. There are not doing anything about slider. 
      CyColumn timeColumn = table.getColumn("startTime"); // Getting start time column 
      List<String> timeList = filter.getTimeFromColumn(timeColumn); // Gets value of start time column without null values 
      // I printed out slider.getValue() value and it returns default slider value all the time. 
      sliderLabel.setText(timeList.get(slider.getValue())); 
     } 
    }); 

在我的代碼另一部分,我需要改變分和滑塊的最大值。爲此,我使用下面的代碼:

public void reCreateSlider(){ 
    // Activity size returns correct. 
    ArrayList<CyNode> activities = filter.FilterRowByNodeType("activity", "nodeType"); 
    this.slider = new JSlider(0, activities.size()); 
} 

爲什麼slider.getValue()會一直返回默認值?非常感謝,

回答

0

其實我只是改變像下面的reCreateSlider()方法,它的工作。

public void reCreateSlider(){ 
// Activity size returns correct. 
ArrayList<CyNode> activities = filter.FilterRowByNodeType("activity", "nodeType"); 
slider.setMinimum(0); 
slider.setMaximum(activities.size()); 
} 

如果有人有同樣的問題,可以這樣做。