Java перекрасить изображение - PullRequest
0 голосов
/ 26 января 2011

У меня проблема с моим скриптом;Я хочу перекрасить новое изображение (показано другое), когда кнопка нажата, но кнопка ничего не делает ...

ActionListener one = new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                panel2.revalidate();
                panel2.repaint();
            }
        };

        btn1.addActionListener(one);



        JLabel test1 = new JLabel(myDeckOfCards.giveCardPlayer1().getImage());

        panel2.add(lab1);
        panel2.add(test1);
        panel2.add(pn5);
        panel2.add(pn1);
        panel2.add(btn1);

1 Ответ

5 голосов
/ 26 января 2011

Внутри actionPerformed вам нужно схватить свой JLabel и позвонить по нему setIcon(), передав новое изображение.

Есть несколько способов получить JLabel, один изубедитесь, что у вас есть переменная final, объявленная как содержащая ее где-то в области действия вашего метода actionPerformed, а другой - найти ее внутри panel2 (не рекомендуется).в ваш ActionListener через конструктор, если вы объявите для этой цели полноценный класс.

EDIT :

final JLabel test1 = new JLabel(myDeckOfCards.giveCardPlayer1().getImage());

ActionListener one = new ActionListener() {
    public void actionPerformed(ActionEvent e) {
        // Get 'anotherIcon' from somewhere, presumably from a similar
        // place to where you retrieved the initial icon
        test1.setIcon(anotherIcon);
    }
};

btn1.addActionListener(one);

panel2.add(lab1);
panel2.add(test1);
panel2.add(pn5);
panel2.add(pn1);
panel2.add(btn1);
...