Java中的鼠标悬停弹出窗口

but5z9lq  于 2023-06-28  发布在  Java
关注(0)|答案(1)|浏览(204)

对于我正在用Java构建的一个应用程序,我试图让我的程序在鼠标悬停在某些对象上时显示一条弹出消息。我知道如何使用mouseEntered()mouseExited()来知道对象是否被悬停,但我不知道如何实际显示弹出消息本身。
我正在考虑使用JOptionPane,但不知道如何关闭弹出窗口,而无需用户手动关闭它。任何投入将不胜感激。
谢谢

iyfjxgzm

iyfjxgzm1#

要在Java应用程序中鼠标悬停在某些对象上时显示弹出消息,可以将mouseEntered()和mouseExited()事件侦听器沿着JOptionPane一起使用。下面是一个如何实现此目标的示例:

import javax.swing.*;
import java.awt.*;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

public class HoverPopupExample {
    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                // Create a JFrame for the main application window
                JFrame frame = new JFrame("Hover Popup Example");
                frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                frame.setSize(400, 300);

                // Create a panel to hold the components
                JPanel panel = new JPanel();
                panel.setLayout(new FlowLayout());

                // Create a label with a tooltip
                JLabel label = new JLabel("Hover over me");
                label.setToolTipText("This is a tooltip");

                // Add the mouse listeners to the label
                label.addMouseListener(new MouseAdapter() {
                    @Override
                    public void mouseEntered(MouseEvent e) {
                        // Show the pop-up message when the mouse enters the label
                        JOptionPane.showMessageDialog(frame, "This is a pop-up message");
                    }

                    @Override
                    public void mouseExited(MouseEvent e) {
                        // Close the pop-up message when the mouse exits the label
                        JOptionPane.getRootFrame().dispose();
                    }
                });

                // Add the label to the panel
                panel.add(label);

                // Add the panel to the frame
                frame.add(panel);

                // Display the frame
                frame.setVisible(true);
            }
        });
    }
}

在本例中,我们创建一个JFrame作为主应用程序窗口,并创建一个JPanel来保存组件。在面板内部,我们创建一个JLabel并向其添加鼠标侦听器。当鼠标进入标签(mouseEntered()事件)时,我们使用JOptionPane.showMessageDialog()显示一条弹出消息。当鼠标退出标签(mouseExited()事件)时,我们通过释放JOptionPane的根框架来关闭弹出消息。
通过运行此示例,当您将鼠标悬停在标签上时,将显示一条弹出消息,并且当鼠标离开标签时,该消息将自动关闭。

相关问题