有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

在JList elementJava上按下时打开弹出窗口

我的代码有一个小问题,我想实现:

  1. 当我点击JList项时,它会弹出一个窗口,给出一条消息
  2. 弹出窗口应该特别提到我点击的元素,例如我按下汽车,它应该像“你点击的汽车是一辆汽车”

到目前为止,我编写的代码是:

  import java.awt.FlowLayout;
  import java.awt.event.MouseAdapter;
  import java.awt.event.MouseEvent;
  import java.awt.event.MouseListener;

 import javax.swing.JFrame;
  javax.swing.JList;
 import javax.swing.JOptionPane;
import javax.swing.JScrollPane;
  import javax.swing.ListSelectionModel;

      public class Test extends JFrame {
private JList list;
private static String[] names = { "car ", "bike", "skate" };

public Test() {
    super("title");
    setLayout(new FlowLayout());
    setSize(650, 800);

    list = new JList(names);
    list.setVisibleRowCount(3);
    list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
    add(new JScrollPane(list));
    setVisible(true);
    MouseListener mouseListener = new MouseAdapter() {
        public void mouseisClicked(MouseEvent mouseEvent) {
            if (mouseEvent.getClickCount() == 2) {
                JOptionPane.showMessageDialog(null, "testing");
            }
        }
    };
    setVisible(true);
}

public static void main(String agrs[]) {
    Test t1 = new Test();
}
}

共 (1) 个答案

  1. # 1 楼答案

    可以使用MouseEvent获取生成事件的组件:

    JList list = (JList)mouseEvent.getSource();
    System.out.println(list.getSelectedValue().toString());
    

    编辑:

    public void mouseisClicked(MouseEvent mouseEvent) {
    

    你没有实现正确的方法。应该是:

    @Override
    public void mouseClicked(MouseEvent mouseEvent) {
    

    重写方法时始终使用@Override,以防止出现键入错误