JPanel заявляет для Synth - PullRequest
       19

JPanel заявляет для Synth

1 голос
/ 14 октября 2011

В моем приложении есть несколько пользовательских кнопок, которые имеют собственные макеты текста / значков и некоторые дополнительные элементы, которые обычно не связаны с кнопками.Например, у некоторых есть две текстовые метки вместо одной.

Я реализовал свои пользовательские кнопки следующим образом:

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 о состоянии моей пользовательской кнопки?

Anв сторону: я действительно изучал возможность CustomButton extension JButton, но я не мог найти хороший способ сделать кнопку с пользовательскими субкомпонентами.Я мог бы опубликовать это как отдельный вопрос, если этот подход не сработает.

1 Ответ

2 голосов
/ 14 октября 2011

, возможно, не ответ на ваш вопрос, я считаю, что более удобным является использование ButtonModel , как MouseListener и MouseMotionListener , пример для моей идеи здесь ,

...