Мне нужно создать некоторые элементы управления JSpinner, чтобы я мог определять нажатия кнопок, , используя текущий внешний вид .Я обнаружил, что могу сделать это достаточно легко следующим образом:
class CustomSpinnerUI extends BasicSpinnerUI {
@Override
protected Component createNextButton() {
// Add custom ActionListener.
}
@Override
protected Component createPreviousButton() {
// Add custom ActionListener.
}
}
Проблема заключается в том, что, делая это, я получаю противно выглядящий прядильщик, который не использует тот же внешний вид, что и остальныемоего интерфейса.В настоящее время я использую Nimbus
, но мне нужно поддерживать различные конфигурации L & F.
Я думал о возможной настройке какого-либо динамического прокси-сервера, но не смог найти подходящих интерфейсов Spinner
, которые позволили бы мнесделать это.
Кто-нибудь может придумать способ обойти проблему?Я полагаю, что мне нужно либо нажать на кнопку ActionListeners
без подкласса BasicSpinnerUI
, либо найти способ заставить CustomSpinnerUI
использовать правильные L & F.
Редактировать: "внешний вид по умолчанию" -> «текущий внешний вид».