Промяна на цвета на JButton при щракване и нулиране след нещракване

Пиша Java приложение, което има бутони в него. Бих искал да знам как мога да променя цвета на jbutton, когато мишката се щракне върху него и когато мишката се пусне, jbutton се връща към цвета си по подразбиране. Опитах да използвам MouseActionListener и ChangeListener, но никой от тях не работи.

Благодаря ти за помощта


person thelinh bui    schedule 26.11.2013    source източник
comment
търся само посоката за решаване на проблема. Така че мисля, че кодът не трябва да се публикува   -  person thelinh bui    schedule 27.11.2013


Отговори (1)


По принцип трябва да прикачите ChangeListener към модела на бутоните. Когато се повдигне събитие stateChanged, трябва да проверите текущото състояние на модела и да направите необходимите промени, както се изисква...

final JButton btn = ....
bnt.getModel().addChangeListener(new ChangeListener() {
    public void stateChanged(ChangeEvent evt) {
        ButtonModel model =evt.getSource();
        // Check for the model state you want...
    }
});
person MadProgrammer    schedule 26.11.2013
comment
ако използвате stateChange Listener, това ще деактивира ActionListener, който регистрирам към jbutton. Опитвал съм това. благодаря ви за отговора... - person thelinh bui; 27.11.2013
comment
Защо трябва да деактивира ActionListener? - person MadProgrammer; 27.11.2013
comment
така че казвате, че това няма да повлияе на actionListener правилно ... ще го пробвам отново и ще ви уведомя .. благодаря - person thelinh bui; 27.11.2013
comment
Компютрите ми работят трудно в момента, така че не мога да ги тествам, но не виждам защо трябва, стига всъщност да не променяте състоянието на модела - person MadProgrammer; 27.11.2013