2017-10-21 107 views
0

J'utilise JSlider dans mon projet. Et quelque part j'ai besoin d'obtenir la valeur de curseur mais la méthode getValue() ne retourne pas la valeur actuelle du curseur. Il renvoie toujours la valeur par défaut.La méthode GetValue de JSlider ne renvoie pas la valeur actuelle?

Voici la partie correspondante mon code:

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())); 
     } 
    }); 

Dans une autre partie de mon code, je dois changer les valeurs min et max du curseur. Pour cela, j'utilise le code ci-dessous:

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

Pourquoi slider.getValue() retourne la valeur par défaut tout le temps? Merci beaucoup,

Répondre

0

En fait, je viens de changer la méthode reCreateSlider() comme ci-dessous et cela a fonctionné.

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

Si quelqu'un a le même problème, vous pouvez le faire de cette façon.