Domanda

Fondamentalmente voglio visualizzare il valore corrente puntato dalla maniglia del cursore in movimento (tramite mouse o tastiera). Posso facilmente ottenere il valore corrente aggiungendo un nuovo metodo di Statechanged di Changelistener e prevalente. Ma non riesco a ottenere la posizione attuale del manico.

Posso solo mordere il proiettile e creare un'etichetta in un luogo costante e aggiornarlo continuamente, ma voglio visualizzare il valore appena sopra (o sotto) la maniglia.

È stato utile?

Soluzione

Non è una soluzione buona o molto flessibile, ma forse puoi implementare la tua SliderUI. Ad esempio usando il già definito BasicUI Puoi accedere al campo thumbRect che contiene i valori di cui hai bisogno.

slider.setUI(new BasicSliderUI(slider) {
  public void paintThumb(Graphics g) {
    super.paintThumb(g);
    g.setColor(Color.black);
    g.drawString(Integer.toString(slider.getValue()), thumbRect.x, thumbRect.y + thumbRect.height);
  }
});

Altri suggerimenti

Se la Nimbus aspetto è un'opzione, una visualizzazione in diretta del valore può essere specificata nell'interfaccia utente pertinente:

UIManager.getLookAndFeelDefaults().put("Slider.paintValue", true);
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top