Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在将鼠标悬停在JList项上时显示JLabel?_Java_Swing - Fatal编程技术网

Java 如何在将鼠标悬停在JList项上时显示JLabel?

Java 如何在将鼠标悬停在JList项上时显示JLabel?,java,swing,Java,Swing,我有一个JList: comandaListModel = new SortedListModel<String>(); comandaListScrollPane = new JScrollPane(); comandaPanel.add(comandaListScrollPane, BorderLayout.CENTER); comandaList = new JList<String>(comandaListModel); c

我有一个JList:

    comandaListModel = new SortedListModel<String>();
    comandaListScrollPane = new JScrollPane();
    comandaPanel.add(comandaListScrollPane, BorderLayout.CENTER);
    comandaList = new JList<String>(comandaListModel);
    comandaListScrollPane.setViewportView(comandaList);


JLabel在JList的
列表选择监听器的
值Changed
上更新。如何在将鼠标悬停在JList的每个项目上时“弹出”JLabel?是否可以对JList实施此类“工具提示”功能?(通过“显示”一个JLabel,当然也可能意味着一个带有JLabel的JPanel)。

您可以实现MouseAdapter来跟踪鼠标在执行某些操作时的动作

MouseAdaptor附带了5种MouseEvent方法,称为“mousePressed”、“MouseRelease”、“mouseEntered”、“mouseExited”和“mouseClicked”。 “mouseEntered”方法就是您要使用的方法

您还需要导入以下内容:

java.awt.event.MouseAdapter;
java.awt.event.MouseEvent;
在包含JList的类中创建构造函数,只需在其中添加以下代码:

addMouseListener(new MouseAdapter() {
        @Override
        public void mouseEntered(MouseEvent e) {

        }
    });
在mouseEntered方法中,应该调用updateQrCode方法。因此,每次鼠标进入列表时,JLabel都会更新

有关详细信息,请参阅此线程:

我希望这有帮助

addMouseListener(new MouseAdapter() {
        @Override
        public void mouseEntered(MouseEvent e) {

        }
    });