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();
}
}
输出结果为: