JButton change of icon using Mouse Listeners
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
add a comment |
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
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
add a comment |
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
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
button icons mouseevent mouselistener mouseclick-event
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
add a comment |
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
add a comment |
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
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
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.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
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
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