如何在 Java 中选择 JList 项时显示值?


JListJComponent 类的一个子类,允许用户选择 单个多项选择。JList 可以生成一个 ListSelectiionListener 接口,其中包括一个抽象方法 valueChanged()。我们可以通过实现 MouseListener 接口或扩展 MouseAdapter 类并调用 getClickCount() 方法将 单击 事件(getClickCount() == 1)与 MouseEvent 类结合使用,从而在从 JList 中选择一个项目时显示一个值。

示例

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;
public class JListItemSeletionTest extends JFrame {
   private JList list;
   private JScrollPane jsp;
   private Vector data;
   public JListItemSeletionTest() {
      setTitle("JListItemSeletion Test");
      list = new JList();
      data = new Vector();
      data.addElement("India");
      data.addElement("Australia");
      data.addElement("England");
      data.addElement("England");
      data.addElement("New Zealand");
      data.addElement("South Africa");
      list.setListData(data);
      list.setSelectedIndex(0);
      list.addMouseListener(new MouseAdapter() {
         public void mouseClicked(MouseEvent me) {
            if (me.getClickCount() == 1) {
               JList target = (JList)me.getSource();
               int index = target.locationToIndex(me.getPoint());
               if (index >= 0) {
                  Object item = target.getModel().getElementAt(index);
                  JOptionPane.showMessageDialog(null, item.toString());
               }
            }
         }
      });
      jsp = new JScrollPane(list);
      add(jsp, BorderLayout.NORTH);
      setSize(400, 275);
      setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      setLocationRelativeTo(null);
      setVisible(true);
   }
   public static void main(String args[]) {
      new JListItemSeletionTest();
   }
}

输出

更新于: 2020 年 2 月 10 日

1 千次以上浏览

开启你的 职业生涯

通过完成课程获得认证

开始
广告