【问题标题】:Image change on hover Java悬停Java时的图像更改
【发布时间】:2013-06-10 16:39:07
【问题描述】:

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

【问题讨论】:

    标签: java image swing hover mouse


    【解决方案1】:

    我会在包含图像的组件中添加一个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://www.suptechnology.ma/entrepot/logocert/logocert-20130211115413.png"));
            BufferedImage imgTwo = ImageIO.read(new URL("http://market.milouz.com/data/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);
      }
    }
    

    【讨论】:

      【解决方案2】:
      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);
      
      }                           
      

      【讨论】:

        猜你喜欢
        • 2012-03-13
        • 2021-01-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-07-24
        • 2010-11-30
        相关资源
        最近更新 更多