java – 如何添加jlabel图像悬停?
发布时间:2020-12-15 05:09:06 所属栏目:Java 来源:网络整理
导读:我如何继续添加JLabel悬停?就像当您将鼠标移到顶部时,JLabel a和新图像将重叠.我知道如何使用按钮,但相同的技术对JLabel不起作用.有人会指导我添加JLabel悬停吗?拜托,谢谢. package src;import java.awt.Dimension;import javax.swing.ImageIcon;import ja
我如何继续添加JLabel悬停?就像当您将鼠标移到顶部时,JLabel a和新图像将重叠.我知道如何使用按钮,但相同的技术对JLabel不起作用.有人会指导我添加JLabel悬停吗?拜托,谢谢.
package src; import java.awt.Dimension; import javax.swing.ImageIcon; import javax.swing.JFrame; import javax.swing.JLabel; /* * @Author - 0x29A * * */ public class Jframe { public static void main(final String args[]) { /* * @Images */ final ImageIcon icon = new ImageIcon("Data/button.png"); final JLabel label = new JLabel(icon); final ImageIcon icon1 = new ImageIcon("Data/button1.png"); final JLabel label1 = new JLabel(icon1); final ImageIcon icon2 = new ImageIcon("Data/button2.png"); final JLabel label2 = new JLabel(icon2); final ImageIcon icon3 = new ImageIcon("Data/button3.png"); final JLabel label3 = new JLabel(icon3); final ImageIcon icon4 = new ImageIcon("Data/button4.png"); final JLabel label4 = new JLabel(icon4); final ImageIcon icon5 = new ImageIcon("Data/button5.png"); final JLabel label5 = new JLabel(icon5); final ImageIcon icon6 = new ImageIcon("Data/background.png"); final JLabel label6 = new JLabel(icon6); /* * @Image Location */ label.setBounds(282,255,96,96); label1.setBounds(384,96); label2.setBounds(282,153,96); label3.setBounds(384,198,96); label4.setBounds(181,152,96); label5.setBounds(181,96); label6.setBounds(0,765,503); /* * @Frame */ final JFrame frame = new JFrame("test"); frame.setDefaultCloSEOperation(JFrame.EXIT_ON_CLOSE); frame.setPreferredSize(new Dimension(765,503)); frame.setLayout(null); frame.add(label); frame.add(label1); frame.add(label2); frame.add(label3); frame.add(label4); frame.add(label5); frame.add(label6); frame.pack(); frame.setResizable(false); frame.setLocationRelativeTo(null); frame.setVisible(true); } } 解决方法
举个简单的例子,它使用MouseListener和MosueAdapter来监视JLabel上的mouseExited()和mouseEntered()事件,当调用这些方法中的任何一个时(即当鼠标悬停在标签上时),图片就会改变:
import java.awt.BorderLayout; import java.awt.Container; import java.awt.event.MouseAdapter; import javax.swing.*; public class LabelHoverTest extends JFrame { Icon pic1; Icon pic2; JLabel label; public LabelHoverTest(String title) { super(title); pic1 = UIManager.getIcon("OptionPane.informationIcon"); pic2 = UIManager.getIcon("OptionPane.questionIcon"); createAndShowUI(); } public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() { @Override public void run() { new LabelHoverTest("Label Hover Test").setVisible(true); } }); } private void createAndShowUI() { setDefaultCloSEOperation(JFrame.EXIT_ON_CLOSE); setResizable(false); addComponentsToPane(getContentPane()); setSize(300,300); setLocationRelativeTo(null); setVisible(true); } private void addComponentsToPane(Container contentPane) { label = new JLabel(pic1); contentPane.add(label,BorderLayout.CENTER); label.addMouseListener(new MouseAdapter() { @Override public void mouseEntered(java.awt.event.MouseEvent evt) { label.setIcon(pic2); } @Override public void mouseExited(java.awt.event.MouseEvent evt) { label.setIcon(pic1); } }); } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |