2011-06-05 43 views

回答

4

一个可能的解决方案是为您的按钮创建一个图标,以便在滚动时显示,然后通过其setRolloverIcon将其添加到按钮中。鼠标的模型将完成显示该图标所需的所有功能。

甚至另一种解决方案是将ChangeListener添加到按钮的模型。在侦听器中,如果isRollover()返回true,则更改显示。

E.G.第一种技术。

import javax.swing.*; 
import java.net.URL; 
import java.awt.Image; 
import javax.imageio.ImageIO; 

class ButtonRollover { 
    public static void main(String[] args) throws Exception { 
     URL imageUrl2 = new URL("http://pscode.org/media/stromlo2.jpg"); 
     URL imageUrl1 = new URL("http://pscode.org/media/stromlo1.jpg"); 

     final Image image2 = ImageIO.read(imageUrl2); 
     final Image image1 = ImageIO.read(imageUrl1); 

     SwingUtilities.invokeLater(new Runnable() { 
      public void run() { 
       JButton button = new JButton("Hover Me!"); 

       button.setIcon(new ImageIcon(image2)); 
       button.setRolloverIcon(new ImageIcon(image1)); 

       JOptionPane.showMessageDialog(null, button); 
      } 
     }); 
    } 
} 
+0

注意:您也可以使用'MouseListener',但由于这是一个更好的答案,我删除了我的答案。 – 2011-06-05 13:51:15

+0

@安德鲁:但我喜欢它,尤其是清真的部分。顺便说一下,好的SSCCE。 – 2011-06-05 13:54:07

+4

这是一个相关的[示例](http://stackoverflow.com/questions/4170134/java-swing-jcomponent-size/4170233#4170233)。 – trashgod 2011-06-05 14:24:10

1

这是一个网页吗?如果是这样,你可以轻松地用CSS做这种事情。

需要进一步的信息,真的。

+0

不,不适用于网页..仅适用于简单的java应用 – 2011-06-05 12:01:37