JPanel称为Synth

时间:2011-10-14 14:11:30

标签: java swing jpanel synth

在我的应用程序中,我有一些自定义按钮,它们具有自定义文本/图标布局和一些通常与按钮无关的额外元素。例如有些有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,但我无法找到一个使用自定义子组件创建按钮的好方法。如果这种方法不成功,我可以将其作为一个单独的问题发布。

1 个答案:

答案 0 :(得分:2)

也许不是你问题的答案,我认为使用ButtonModel更加舒服,MouseListenerMouseMotionListener,例如我的想法是here,< / p>