我需要创建一些 JSpinner 控件,我可以在其中检测按钮按下,同时使用当前的外观和感觉。我发现我可以很容易地做到这一点,如下所示:
class CustomSpinnerUI extends BasicSpinnerUI {
@Override
protected Component createNextButton() {
// Add custom ActionListener.
}
@Override
protected Component createPreviousButton() {
// Add custom ActionListener.
}
}
问题是这样做我最终得到了一个看起来很讨厌的微调器,它与我的 UI 的其余部分使用不同的外观和感觉。我目前正在使用Nimbus
,但我需要支持不同的 L&F 配置。
我考虑过可能设置某种动态代理,但找不到任何合适Spinner
的接口让我能够做到这一点。
谁能想到解决问题的方法?我想我要么需要在ActionListeners
没有子类化的情况下按下按钮BasicSpinnerUI
,要么想办法让我CustomSpinnerUI
使用正确的 L&F。
编辑:“默认外观”->“当前外观”。