当前位置: 首页 > 教程 > Java Swing >

Java JList

精华
小牛编辑
113浏览
2023-03-14

1 Java JList的介绍

JList类的对象表示文本项的列表。可以设置文本项列表,以便用户可以选择一项或多项。它继承了JComponent类。

2 Java JList的声明

我们来看一下javax.swing.JList类的声明。

public class JList extends JComponent implements Scrollable, Accessible  

3 Java JList的构造方法

构造方法 描述
JList() 用空的只读模型创建一个JList。
JList(ary[] listData) 创建一个JList,显示指定数组中的元素。
JList(ListModel<ary> dataModel) 创建一个JList,该JList显示来自指定的非null模型的元素。

4 Java JList的方法

方法 描述
Void addListSelectionListener(ListSelectionListener listener) 用于将侦听器添加到列表,每次选择发生更改时都会得到通知。
int getSelectedIndex() 用于返回最小的选定单元格索引。
ListModel getModel() 用于返回保存由JList组件显示的项目列表的数据模型。
void setListData(Object[] listData) 用于从对象数组创建只读ListModel。

5 Java JList的案例1

package cn.xnip;

/**
 * 小牛知识库网: https://www.xnip.cn
 */

import javax.swing.*;
public class ListExample  
{  
     ListExample(){  
        JFrame f= new JFrame();  
        DefaultListModel<String> l1 = new DefaultListModel<>();  
          l1.addElement("Item1");  
          l1.addElement("Item2");  
          l1.addElement("Item3");  
          l1.addElement("Item4");  
          JList<String> list = new JList<>(l1);  
          list.setBounds(100,100, 75,75);  
          f.add(list);  
          f.setSize(400,400);  
          f.setLayout(null);  
          f.setVisible(true);  
     }  
    public static void main(String args[])
    {  
     new ListExample();
    }
}

输出结果为:

6 Java JList的案例2

package cn.xnip;

/**
 * 小牛知识库网: https://www.xnip.cn
 */

import javax.swing.*;
import java.awt.event.*;
public class ListExample
{
    ListExample(){
        JFrame f= new JFrame();
        final JLabel label = new JLabel();
        label.setSize(500,100);
        JButton b=new JButton("Show");
        b.setBounds(200,150,80,30);
        final DefaultListModel<String> l1 = new DefaultListModel<>();
        l1.addElement("C");
        l1.addElement("C++");
        l1.addElement("Java");
        l1.addElement("PHP");
        final JList<String> list1 = new JList<>(l1);
        list1.setBounds(100,100, 75,75);
        DefaultListModel<String> l2 = new DefaultListModel<>();
        l2.addElement("Turbo C++");
        l2.addElement("Struts");
        l2.addElement("Spring");
        l2.addElement("YII");
        final JList<String> list2 = new JList<>(l2);
        list2.setBounds(100,200, 75,75);
        f.add(list1); f.add(list2); f.add(b); f.add(label);
        f.setSize(450,450);
        f.setLayout(null);
        f.setVisible(true);
        b.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                String data = "";
                if (list1.getSelectedIndex() != -1) {
                    data = "你选择的编程语言是: " + list1.getSelectedValue();
                    label.setText(data);
                }
                if(list2.getSelectedIndex() != -1){
                    data += ", 选择的框架是: ";
                    for(Object frame :list2.getSelectedValues()){
                        data += frame + " ";
                    }
                }
                label.setText(data);
            }
        });
    }
    public static void main(String args[])
    {
        new ListExample();
    }
}

输出结果为:

最后更新:

类似资料

  • 我有一个大 gui 的 JList,我删除了所有其他不相关的代码。我可以初始化列表,但在使用按钮时无法从中添加/删除项目。我读到的所有内容都说要使用DefaultListModel。然后,当您重新初始化列表时,它将自动更新列表。 我也尝试重新聚焦并重新粉刷面板和框架,但这也不起作用。

  • 我设置了一个JPopupMenu,它将显示用户是否右键单击JList中的某个单元格,但现在必须先选择该单元格,才能显示JPopupMenu。我想知道如何在右键单击后选择该单元格,然后像现在一样显示JPopupMenu。当没有选择任何项目并且鼠标不在列表中的任何项目上时,我也会显示一个菜单。 代码:

相关阅读

开发工具