JPanel заявляет для Synth
В моем приложении есть несколько пользовательских кнопок, которые имеют собственные макеты текста / значков и некоторые дополнительные элементы, которые обычно не связаны с кнопками. Например, у некоторых есть две текстовые метки вместо одной.
Я реализовал свои пользовательские кнопки следующим образом:
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 ответ
Может быть, не ответ на ваш вопрос, я считаю, что более удобным является использование ButtonModel, как MouseListener и MouseMotionListener, пример для моей идеи здесь,