DaniWeb IT Discussion Community

DaniWeb IT Discussion Community (http://www.daniweb.com/forums/)
-   Java (http://www.daniweb.com/forums/forum9.html)
-   -   Creating Hover Effect for JButton (http://www.daniweb.com/forums/thread124033.html)

K?! May 13th, 2008 10:16 am
Creating Hover Effect for JButton
 
Hello

I'd like to create a hover effect for JButtons, but i can't find it for the moment.

It doesn't have to be antything spectacular, it just has to be visible.

Thanks in advance.
Greets, K?!.

majestic0110 May 13th, 2008 10:43 am
Re: Creating Hover Effect for JButton
 
Do you mean a tooltip, where text is displayed over a "hovered " button ?

K?! May 13th, 2008 3:56 pm
Re: Creating Hover Effect for JButton
 
No, something that changes about the button.
Like a link on a webpage: e.g. it gets underlined when the arrow hovers above it.

Thanks in advance.
K?!

Ezzaral May 13th, 2008 5:41 pm
Re: Creating Hover Effect for JButton
 
You can do whatever you want when the mouse enters or leaves the button
jButton1.addMouseListener(new java.awt.event.MouseAdapter() {
    public void mouseEntered(java.awt.event.MouseEvent evt) {
        jButton1.setBackground(Color.GREEN);
    }
    public void mouseExited(java.awt.event.MouseEvent evt) {
        jButton1.setBackground(UIManager.getColor("control"));
    }
});
or to just underline
jButton1.addMouseListener(new java.awt.event.MouseAdapter() {
    Font originalFont = null;

    public void mouseEntered(java.awt.event.MouseEvent evt) {
        originalFont = jButton1.getFont();
        Map attributes = originalFont.getAttributes();
        attributes.put(TextAttribute.UNDERLINE, TextAttribute.UNDERLINE_ON);
        jButton1.setFont(originalFont.deriveFont(attributes));
    }

    public void mouseExited(java.awt.event.MouseEvent evt) {
        jButton1.setFont(originalFont);
    }
});

freshface001 May 14th, 2008 3:02 am
Re: Creating Hover Effect for JButton
 
hi,
first add mouse listener to the button.
and change the background to the button in the following function
public void mouseEntered(MouseEvent e){
button.setBackground(Color.cyan);
}
public void mouseExited(MouseEvent e){
button.setBackground(Color.gray);
}
you also change font size,font color,etc;

try it..

K?! May 14th, 2008 3:47 am
Re: Creating Hover Effect for JButton
 
Thanks for the help already.

It should work but there's still one problem.
I'm using an array of buttons (12). Somehow i'd have to be able to access the number of the button in the array. I was told to use the actionCommand for the actionListener. Like that i was able to use "getActionCommand" on the event to get the card's number.

Any options to get the card's number from the MouseEvent?

Thanks in advance.
Greets, K?!

Ezzaral May 14th, 2008 12:17 pm
Re: Creating Hover Effect for JButton
 
getComponent() will provide the component that initiated the mouse event. If the info you need is just the text on the button then this will get it
    public void mouseExited(java.awt.event.MouseEvent evt) {
        JButton button = (JButton)evt.getComponent();
        System.out.println(button.getText());
    }
If you need some other info, you can extend JButton to keep a reference to your Card object (or whatever object the button represents) and cast to that object instead.

K?! May 15th, 2008 8:26 am
Re: Creating Hover Effect for JButton
 
Well, the problem is, the buttons don't have any text. Only an image of a card.
That's why i was told to use "setActionCommand()" and "getActionCommand()".

I tried to use getActionCommand() on the component (the button that was obtained by "getComponent()" ofcourse).

But it doesn't seem to be possible.

There's one thing i don't understand:
Quote:

If you need some other info, you can extend JButton to keep a reference to your Card object (or whatever object the button represents) and cast to that object instead.

I don't know how i should do that, and if it's difficult, i'd like a simple solution because we almost have to finish the project.

Is there any way to get the action command? I used that before and the action commands already contain the right numbers.

Thanks for the help.
And thanks in advance for further help.

Greets, K?!.

K?! May 15th, 2008 8:31 am
Re: Creating Hover Effect for JButton
 
By the way, freshface001,

I thought your suggestion was the same like Ezzaral's, so i decided to copy his code instead.
Is it really the same or am i wrong?

Thanks for helping.
Greets.

K?! May 15th, 2008 8:39 am
Re: Creating Hover Effect for JButton
 
Ok guys, found it :).

In stead of trying to do this:
btnCard[evt.getComponent().getActionCommand()].setBackground(Color.GREEN);
I can do this:
evt.getComponent().setBackground(Color.GREEN);

Thanks for helping me out :).
Greets K?!


All times are GMT -4. The time now is 10:31 pm.

Forum system based on vBulletin Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
©2003 - 2008 DaniWeb® LLC