2

基本的には、(マウスまたはキーボードを介して) 動いているときにスライダー ハンドルが指す現在の値を表示したいと考えています。新しい ChangeListener を追加して stateChanged メソッドをオーバーライドすることで、現在の値を簡単に取得できます。しかし、ハンドルの現在の位置を取得できないようです。

弾丸を噛んで一定の場所にラベルを作成し、継続的に更新することができますが、ハンドルのすぐ上 (または下) に値を表示したいと考えています。

4

2 に答える 2

3

優れた、または非常に柔軟なソリューションではありませんが、独自のSliderUI. たとえば、すでに定義されているを使用して、必要な値を含むBasicUIフィールドにアクセスできます。thumbRect

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);
  }
});
于 2011-06-14T17:29:48.160 に答える
1

Nimbus Look and Feelがオプションの場合、値のライブ表示を関連するUIのデフォルトで指定できます。

UIManager.getLookAndFeelDefaults().put("Slider.paintValue", true);
于 2011-06-14T20:32:44.143 に答える