2013-04-24 2 views
2

Я новичок в Java, но должен знать, что если это возможно для разработчика, чтобы он/она мог изменить форму JProgressBar. Я имею в виду, что в моем случае я хочу изменить форму так, чтобы она выглядела как круг или что-то еще?Изменить форму JProgressBar

Хотя я просто хочу, чтобы он менялся от формы до формы дуги, или вы можете сказать, что я хочу изменить форму стержня в любую другую форму. Мой индикатор выполнения может выглядеть как кривая, отличная от формы бруска. Я хочу добавить в нее кривую.

+1

Для [Пример] (http://stackoverflow.com/a/11148842/230513). – trashgod

+0

Я хочу использовать его как дугу, а не в линейной форме, или вы можете сказать, что это может быть изменение в овальной форме тоже? –

+0

* «любой намек» * Пользователи часто ненавидят то, что разработчики считают «kewl» * или любой идеей! »* Придерживайтесь панели, пока не поймете, почему это так. –

ответ

7

Внешний вид JProgressBar контролируется делегатом пользовательского интерфейса компонента, как правило, производным от BasicProgressBarUI. Вы можете предоставить свой делегат, как показано на рисунке here, и переопределить желаемый метод рисования.

Приложение: для полукруглого дисплея вы можете использовать DialPlot из библиотеки JFreeChart. Полный пример обсуждается here. Вы можете использовать его напрямую или отобразить диаграмму в своем делегате пользовательского интерфейса.

image

+0

. Я хочу изменить форму, а не цвета, спасибо за вашу помощь. @trash –

+0

Вы можете использовать любой цвет (ы), который вы хотите; он не будет автоматически соответствовать платформе по умолчанию, но вы можете использовать UI [по умолчанию] (http://stackoverflow.com/a/11148842/230513) в качестве старта. – trashgod

+0

Вы также можете изменить форму в делегате пользовательского интерфейса, но затем вы можете повторно использовать меньше кода из BasicProgressBarUI. Нелегкая задача. Посмотрите http://javagraphics.blogspot.co.at/2008/05/angles-need-gui-widget-for-angles.html - здесь «UI угла» предоставляется JSlider. – lbalazscs