Как обновить всплывающую подсказку JSlider без использования MouseAdapter?

Я хочу реализовать это решение Отобразить измененное значение JSlider над большим пальцем.

Но я НЕ хочу использовать MouseAdapter для управления меткой (положением и содержимым). Я просто хочу, чтобы метка обновлялась при изменении значения JSlider. В своем коде я изменяю значение для значения Jslider в методе paintComponent(Graphics g2). Я не знаю, правильно ли это место для обновления значения ползунка с помощью

slider.setValue (x) 

-- Редактировать:

Я попытался нарисовать прямоугольник, но по какой-то причине я не могу понять положение нарисованного прямоугольника, а указатель ползунка не выровнен.

    if (modified) {
        position += 55 - 2;
        modified=false;
    }

    g2.draw3DRect(position, slider.getY(), 150, 25, true);
    g2.setColor(Color.WHITE);
    g2.fill3DRect(position, slider.getY(), 150, 25, true);
    g2.setColor(Color.BLACK);

    if(startDate != null)
        g2.drawString(startDate.toString(), slider.getX(), slider.getY()); 

-- Редактировать:

Я изменил приведенный выше код, и похоже, что вычитание 2 из модифицированного делает их более выровненными.


person MTA    schedule 24.11.2015    source источник