在我的应用程序中,我有一些自定义按钮,它们具有自定义文本/图标布局和一些通常不与按钮关联的额外元素。例如,有些有 2 个文本标签而不是 1 个。
我已经实现了我的自定义按钮,如下所示:
class CustomButton extends JPanel implements MouseListener {
CustomButton() {
setName("CustomButton");
}
}
我将 Synth 用于 L&F,我希望在 XML 文件中定义尽可能多的样式信息(主要是颜色设置)。
在 XML 文件中,我有这个:
<style id="customButtonStyle">
<state>
<color idref="A" type="BACKGROUND" />
</state>
<state value="MOUSE_OVER">
<color idref="B" type="BACKGROUND" />
</state>
<state value="PRESSED">
<color idref="C" type="BACKGROUND" />
</state>
</style>
<bind sytle="customButtonStyle" type="name" key="CustomButton" />
当我运行应用程序时,颜色“A”被正确使用,但从未设置颜色“B”和“C”。
我的问题是,如何通知 Synth 我的自定义按钮的状态?
顺便说一句:我确实考虑过CustomButton
扩展JButton
,但我无法找到一种使用自定义子组件制作按钮的好方法。如果这种方法不起作用,我可能会将其作为一个单独的问题发布。