gpt4 book ai didi

java - 为什么 JList 上的多重选择就像右键单击鼠标一样?

转载 作者:行者123 更新时间:2023-12-01 13:55:52 25 4
gpt4 key购买 nike

我正在将 MouseListener 添加到 JList 中,以便在右键单击时,我会清除 JList 中的选择。但我允许 JList 能够处理间隔选择。当我选择使用控制按钮并从列表中随机选择一些项目时,将触发 MouseEvent !但是当我使用 Shift 键进行连续选择时,效果很好!

这是我的代码:

List.addMouseListener(new MouseAdapter() {

public void mouseClicked(MouseEvent e)
{
JList list = (JList) e.getSource();
if ( SwingUtilities.isRightMouseButton(e) ) {
System.out.println("Boom");
list.clearSelection();
}
}
});

最佳答案

SSCCEE 的意思是“简短”、“独立”、“正确”(可编译)、“示例”。您应该创建一个简短的示例来说明您的问题。您的实际代码可能很长并且不必要显示问题,因此您应该创建小型运行程序。

好的,这就是 SSCCE,正如预期的那样,它工作正常。请在此告知您在使用此示例时遇到的问题。

import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.DefaultListModel;
import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.JScrollPane;
import javax.swing.SwingUtilities;

public class ListDemo extends JFrame{
private DefaultListModel<String> listModel;
private JList<String> list;
private JScrollPane listScrollPane;

public ListDemo(){
listModel = new DefaultListModel<String>();
for(int i = 0; i < 10; i++){
listModel.addElement("Item " + (i + 1));
}

list = new JList<String>(listModel);
list.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent me){
if(SwingUtilities.isRightMouseButton(me)){
list.clearSelection();
}
}
});

listScrollPane = new JScrollPane(list);

getContentPane().add(listScrollPane);

setSize(500, 400);
setDefaultCloseOperation(EXIT_ON_CLOSE);
}

public static void main(String [] arg){
SwingUtilities.invokeLater(new Runnable() {
public void run() {
new ListDemo().setVisible(true);
}
});
}
}

关于java - 为什么 JList 上的多重选择就像右键单击鼠标一样?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19631454/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com