JButton change of icon using Mouse Listeners












0















I want to create an effect on JButtons so that they change their icons on cursor hover and when being clicked, and also restore them on click end/cursor out.
I created 3 mouse listeners that change the buttons' icons when the mouse is clicked, entered and exited. The problem is when the button is pressed it changes it's icon and then when I take the cursor outside the button, the mouseExcited function goes in and thus I cannot change it permanently. I guess I should write some kind of an ,,if pressed" statement but I have no idea how and where.



p.star.addMouseListener(new java.awt.event.MouseListener() {
@Override
public void mouseClicked(MouseEvent e) {
System.out.println(e.getSource());
ImageIcon starIcon = new ImageIcon("star.png");
p.star.setIcon(starIcon);
}

@Override
public void mousePressed(MouseEvent e) {
}

@Override
public void mouseReleased(MouseEvent e) {
}

@Override
public void mouseEntered(MouseEvent e) {
ImageIcon starIcon = new ImageIcon("star.png");
p.star.setIcon(starIcon);
}

@Override
public void mouseExited(MouseEvent e) {
ImageIcon starIcon = new ImageIcon("star_blue.png");
p.star.setIcon(starIcon);
}

});


Thanks in advance for your kind help :)










share|improve this question

























  • hi, I've fixed code formatting a bit, and now I can see some extra closing brackets that don't match any opening ones, could you fix those in a way they are in your code? I've also changed the terms in the first sentence to somewhat more conventional ones, so you may want to update the rest of your text

    – YakovL
    Jan 2 at 0:57













  • Thank you :) Sure, I will change it!

    – Karolina Andruszkiewicz
    Jan 2 at 10:32
















0















I want to create an effect on JButtons so that they change their icons on cursor hover and when being clicked, and also restore them on click end/cursor out.
I created 3 mouse listeners that change the buttons' icons when the mouse is clicked, entered and exited. The problem is when the button is pressed it changes it's icon and then when I take the cursor outside the button, the mouseExcited function goes in and thus I cannot change it permanently. I guess I should write some kind of an ,,if pressed" statement but I have no idea how and where.



p.star.addMouseListener(new java.awt.event.MouseListener() {
@Override
public void mouseClicked(MouseEvent e) {
System.out.println(e.getSource());
ImageIcon starIcon = new ImageIcon("star.png");
p.star.setIcon(starIcon);
}

@Override
public void mousePressed(MouseEvent e) {
}

@Override
public void mouseReleased(MouseEvent e) {
}

@Override
public void mouseEntered(MouseEvent e) {
ImageIcon starIcon = new ImageIcon("star.png");
p.star.setIcon(starIcon);
}

@Override
public void mouseExited(MouseEvent e) {
ImageIcon starIcon = new ImageIcon("star_blue.png");
p.star.setIcon(starIcon);
}

});


Thanks in advance for your kind help :)










share|improve this question

























  • hi, I've fixed code formatting a bit, and now I can see some extra closing brackets that don't match any opening ones, could you fix those in a way they are in your code? I've also changed the terms in the first sentence to somewhat more conventional ones, so you may want to update the rest of your text

    – YakovL
    Jan 2 at 0:57













  • Thank you :) Sure, I will change it!

    – Karolina Andruszkiewicz
    Jan 2 at 10:32














0












0








0








I want to create an effect on JButtons so that they change their icons on cursor hover and when being clicked, and also restore them on click end/cursor out.
I created 3 mouse listeners that change the buttons' icons when the mouse is clicked, entered and exited. The problem is when the button is pressed it changes it's icon and then when I take the cursor outside the button, the mouseExcited function goes in and thus I cannot change it permanently. I guess I should write some kind of an ,,if pressed" statement but I have no idea how and where.



p.star.addMouseListener(new java.awt.event.MouseListener() {
@Override
public void mouseClicked(MouseEvent e) {
System.out.println(e.getSource());
ImageIcon starIcon = new ImageIcon("star.png");
p.star.setIcon(starIcon);
}

@Override
public void mousePressed(MouseEvent e) {
}

@Override
public void mouseReleased(MouseEvent e) {
}

@Override
public void mouseEntered(MouseEvent e) {
ImageIcon starIcon = new ImageIcon("star.png");
p.star.setIcon(starIcon);
}

@Override
public void mouseExited(MouseEvent e) {
ImageIcon starIcon = new ImageIcon("star_blue.png");
p.star.setIcon(starIcon);
}

});


Thanks in advance for your kind help :)










share|improve this question
















I want to create an effect on JButtons so that they change their icons on cursor hover and when being clicked, and also restore them on click end/cursor out.
I created 3 mouse listeners that change the buttons' icons when the mouse is clicked, entered and exited. The problem is when the button is pressed it changes it's icon and then when I take the cursor outside the button, the mouseExcited function goes in and thus I cannot change it permanently. I guess I should write some kind of an ,,if pressed" statement but I have no idea how and where.



p.star.addMouseListener(new java.awt.event.MouseListener() {
@Override
public void mouseClicked(MouseEvent e) {
System.out.println(e.getSource());
ImageIcon starIcon = new ImageIcon("star.png");
p.star.setIcon(starIcon);
}

@Override
public void mousePressed(MouseEvent e) {
}

@Override
public void mouseReleased(MouseEvent e) {
}

@Override
public void mouseEntered(MouseEvent e) {
ImageIcon starIcon = new ImageIcon("star.png");
p.star.setIcon(starIcon);
}

@Override
public void mouseExited(MouseEvent e) {
ImageIcon starIcon = new ImageIcon("star_blue.png");
p.star.setIcon(starIcon);
}

});


Thanks in advance for your kind help :)







button icons mouseevent mouselistener mouseclick-event






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Jan 2 at 10:32







Karolina Andruszkiewicz

















asked Jan 1 at 22:08









Karolina AndruszkiewiczKarolina Andruszkiewicz

11




11













  • hi, I've fixed code formatting a bit, and now I can see some extra closing brackets that don't match any opening ones, could you fix those in a way they are in your code? I've also changed the terms in the first sentence to somewhat more conventional ones, so you may want to update the rest of your text

    – YakovL
    Jan 2 at 0:57













  • Thank you :) Sure, I will change it!

    – Karolina Andruszkiewicz
    Jan 2 at 10:32



















  • hi, I've fixed code formatting a bit, and now I can see some extra closing brackets that don't match any opening ones, could you fix those in a way they are in your code? I've also changed the terms in the first sentence to somewhat more conventional ones, so you may want to update the rest of your text

    – YakovL
    Jan 2 at 0:57













  • Thank you :) Sure, I will change it!

    – Karolina Andruszkiewicz
    Jan 2 at 10:32

















hi, I've fixed code formatting a bit, and now I can see some extra closing brackets that don't match any opening ones, could you fix those in a way they are in your code? I've also changed the terms in the first sentence to somewhat more conventional ones, so you may want to update the rest of your text

– YakovL
Jan 2 at 0:57







hi, I've fixed code formatting a bit, and now I can see some extra closing brackets that don't match any opening ones, could you fix those in a way they are in your code? I've also changed the terms in the first sentence to somewhat more conventional ones, so you may want to update the rest of your text

– YakovL
Jan 2 at 0:57















Thank you :) Sure, I will change it!

– Karolina Andruszkiewicz
Jan 2 at 10:32





Thank you :) Sure, I will change it!

– Karolina Andruszkiewicz
Jan 2 at 10:32












0






active

oldest

votes











Your Answer






StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");

StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});

function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});


}
});














draft saved

draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53999322%2fjbutton-change-of-icon-using-mouse-listeners%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown

























0






active

oldest

votes








0






active

oldest

votes









active

oldest

votes






active

oldest

votes
















draft saved

draft discarded




















































Thanks for contributing an answer to Stack Overflow!


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53999322%2fjbutton-change-of-icon-using-mouse-listeners%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

MongoDB - Not Authorized To Execute Command

How to fix TextFormField cause rebuild widget in Flutter

in spring boot 2.1 many test slices are not allowed anymore due to multiple @BootstrapWith