Я создаю ползунок, который будет подклассом JSlider, как часть графического интерфейса.То, что я хотел бы сделать, это иметь возможность рисовать некоторые элементы над ползунком (например, отображение «громкости», показывающее, сколько информации журнала будет выплевано определенной настройкой).Я переопределил метод paintComponent (), но я немного запутался в том, как вычисляется прямоугольник отсечения для объекта Graphics, который передается в paintComponent.
По сути, я хочу создать больше пространства в видимой области компонента, который можно нарисовать, но только над тем, что уже нарисовано.Так, например, на следующем изображении у меня есть три ползунка:
Прямоугольник отсечения показан красным для каждого из них.(Они несколько нарисованы от руки, но я действительно использовал drawRect (g.getClipBounds ()) и придумал подобные прямоугольники. Верхняя ползунок - это то, что я получаю, если вообще не увеличиваю ползунок.средний прямоугольник - это то, что я получаю, если переопределить getPreferredSize (), чтобы добавить некоторую величину (я называю это «высота объема» - по умолчанию 20) к высоте компонента. Нижнее изображение - это то, что я хочу.средняя ползунок, но с обтравочным прямоугольником, переведенным на 1/2 высоты объема к вершине компонента.
Итак, мой вопрос: «Как вычисляются прямоугольники отсечения в объекте Graphics при передаче вметод paintComponent ()? Я не могу выяснить, как система определяет, какими должны быть границы отсечения для данного компонента.
Спасибо,
~ Скотт