我可以仅在一个控件上应用系统外观吗?
在我的 Swing 应用程序中,我在框架中使用了 Substance 外观和感觉。但出于设计目的,我想展示一个具有本机系统外观和感觉的 JButton。我发现我可以应用特定的 UI,例如:
myButton.setUI( new javax.swing.plaf.metal.MetalButtonUI() );
但是我可以将默认的系统 UI 应用于此按钮吗?
In my Swing application I am using a Substance look and feel in my frames. But for design purposes I want to show one JButton with the native system look and feel. I see I can apply a specific UI like:
myButton.setUI( new javax.swing.plaf.metal.MetalButtonUI() );
But can I apply the default system UI to this button?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
解决方案是自行实例化默认的 LookAndFeel(根据 Javadocs,永远不应该这样做)。然后您可以从默认的 LaF 获取 UI 并将其应用到您的按钮。
如果在我自己的应用程序中测试此代码,该应用程序也使用 Substance,并且它有效:
如果您想在不同的 Substance 皮肤之间切换,您可以使用 SKIN_PROPERTY。
The solution is instantiating the default LookAndFeel on your own (Which should never be done according to the Javadocs). Then you can get the UI from the default LaF and apply it to your button.
If tested this code within my own application, which also uses Substance, and it worked:
If you want to switch between different Substance skin, you can use SKIN_PROPERTY.
myButton.setUI((ButtonUI)UIManager.getUI(myButton))
?myButton.setUI((ButtonUI)UIManager.getUI(myButton))
?