hoverJava时的图像更改

我知道item1.setToolTipText("This shows up on mouse hover"); 如果鼠标hover在文本上,将允许显示文本。 我想知道我是否可以在鼠标hover时更改图像? 提前致谢。

我会将MouseListener添加到包含图像的组件中。

然后只需重写方法mouseEntered(MouseEvent e)mouseExited(MouseEvent e)来更改图像。

这是一个完整的工作示例:

 public class JFrameExample { public static void main(String[] args) throws MalformedURLException, IOException { final JButton j; BufferedImage imgOne = ImageIO.read(new URL("http://sofzh.miximages.com/java/logocert-20130211115413.png")); BufferedImage imgTwo = ImageIO.read(new URL("http://sofzh.miximages.com/java/icon53.png")); final ImageIcon imageIconOne = new ImageIcon(imgOne); final ImageIcon imageIconTwo = new ImageIcon(imgTwo); JFrame f = new JFrame("This is a test / Image on hover"); f.setSize(500, 500); Container content = f.getContentPane(); content.setLayout(new FlowLayout()); j = new JButton(imageIconOne); j.addMouseListener(new MouseListener() { @Override public void mouseReleased(MouseEvent arg0) {} @Override public void mousePressed(MouseEvent arg0) {} @Override public void mouseExited(MouseEvent arg0) { j.setIcon(imageIconOne); } @Override public void mouseEntered(MouseEvent arg0) { j.setIcon(imageIconTwo); } @Override public void mouseClicked(MouseEvent arg0) {} }); content.add(j); f.setVisible(true); } } 
 private void SettingsMouseEntered(java.awt.event.MouseEvent evt) { ImageIcon Setting = new ImageIcon(getClass().getResource("/pic/settings2.png")); Settings.setIcon(Setting); } private void SettingsMouseExited(java.awt.event.MouseEvent evt) { ImageIcon Setting = new ImageIcon(getClass().getResource("/pic/settings1.png")); Settings.setIcon(Setting); } 
Interesting Posts