使用Nimbus LAF能否更改JSpinner的背景?

5
我相信在向您寻求帮助之前已经做了充分的研究,但有可能我忽略了一些东西。
我正在使用Nimbus L-A-F编写Java UI。我希望在状态更改时更改JSpinner的背景颜色,即当按下向上或向下按钮时,jspinner中的textfield的背景颜色会更改以表示值已被更改。
我知道使用其他外观可以实现这一点,但使用Nimbus不太容易,例如: ((JSpinner.NumberEditor)jSpinner1.getEditor()).getTextField().setBackground(color.yellow); 我还研究了实际更改UI管理器的颜色主题,但我只想在发生操作时更改颜色,而不是默认情况下整体更改颜色。 这里 这里 这是否可能,并从何处开始?
如果失败,我希望只更改按钮的颜色: jButton.setBackground(Color.yellow); 这很容易,但由于默认颜色是渐变的,我该如何将其改回来呢?
真心希望有人知道或能提供帮助。
非常感谢您的帮助!
1个回答

1

是的,这是可能的。请参考来自The Java Tutorialsthis示例(即SpinnerDemo4)以获取更多详细信息。而且,在测试其中的代码时,我确实将LaF设置为了Nimbus。


谢谢您的回复。我也尝试了那个演示并将laf设置为nimbus,但似乎它只是用JLabel替换了JTextField组件,删除了我需要的可见数字。因此,我修改了代码,使Editor扩展了JTextField,并在changelistener中插入了一行以更改背景颜色,但数字仍未显示。所以我还创建了一个更新要显示的文本的方法,但我仍然需要用户手动编辑这个值,而这个过程无法实现。我不明白为什么nimbus会忽略SetBackground。 - Daryl

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接