java - 在Java中当鼠标指针悬停在按钮上时如何突出显示按钮(就像XP中的“开始”按钮突出显示)?

标签 java image swing icons jbutton

如果鼠标指针悬停在 Windows XP 中的开始按钮上,它会突出显示。我想在 Java 中做同样的事情。谁能帮我吗?

最佳答案

一个可能的解决方案是为按钮创建一个图标,以便在鼠标悬停时显示,然后通过其 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);
            }
        });
    }
}

关于java - 在Java中当鼠标指针悬停在按钮上时如何突出显示按钮(就像XP中的“开始”按钮突出显示)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6242533/

相关文章:

java - 相等的键触发缓存负载超过预期

c# - .NET Tiff 问题 C#

JavaScript 从站点目录预加载随机命名的图像

java - JsonB、JPA、REST、CDI、生成不完整的 JSON

java - 将 Byte[] append 到二进制文件的末尾

java swing cardLayout.show() 什么都不做

用于桌面开发的 Java IDE

java - 如何选择 JList 中每个单元格包含包含 JTextArea 的 JPanel 的行

java - 预初始化工作线程池以重用连接对象(套接字)

html - 由段落旁边的图像组成的居中 block