java jlist 用法_JList的用法

JList 的内容可以是动态的,换句话说,在创建 JList 之后,列表元素可以改变值,列表的大小也可以改变。JList 利用

swing.event.ListDataListener 实现在其模型中观察更改。正确实现的 ListModel

在每次发生更改时向其侦听器发出通知。更改的特征由标识已修改、已添加或已移除的列表索引范围的

swing.event.ListDataEvent 来描述。简单动态内容 JList 应用程序可以使用

DefaultListModel 类存储列表元素。此类实现 ListModel 接口,同时提供 java.util.Vector

API。

构造函数:

List(ListModel dataModel)

构造一个 JList,使其使用指定的非 null 模型显示元素。

也可以用方法:

setModel(ListModel model)

设置表示列表内容或“值”的模型

如下可以访问每一个元素并输出元素值,

String[] data = {"one", "two", "three", "four"};

JList dataList = new JList(data);

for(int i = 0; i < dataList.getModel().getSize();

i++) {

System.out.println(dataList.getModel().getElementAt(i));

}

如果你想改列表中的元素,试试用(不过前提是用DefaultListModel,而不是String数组.)

DefaultListModel 里面的一些方法:

void add(int index, Object element)

在此列表的指定位置处插入指定元素。

void addElement(Object obj)

将指定组件添加到此类表的末尾。

int capacity()

返回此列表的当前容量。

void clear()

从此列表中移除所有元素。

boolean contains(Object elem)

测试指定对象是否为此类表中的组件。

void copyInto(Object[] anArray)

将此列表的组件复制到指定数组中。

Object elementAt(int index)

返回指定索引处的组件。

Enumeration> elements()

返回此列表的组件枚举。

void ensureCapacity(int minCapacity)

增加此列表的容量(如有必要),以确保其至少能够保存最小容量参数指定的组件数。

Object firstElement()

返回此列表中的第一个组件。

Object get(int index)

返回列表中指定位置处的元素。

Object getElementAt(int index)

返回指定索引处的组件。

int getSize()

返回此列表中的组件数。

int indexOf(Object elem)

搜索 elem 的第一次出现。

int indexOf(Object elem, int index)

从 index 开始搜索 elem 的第一次出现。

void insertElementAt(Object obj, int index)

将指定对象作为此列表中的组件插入到指定的 index 处。

boolean isEmpty()

测试此列表中是否有组件。

Object lastElement()

返回列表的最后一个组件。

int lastIndexOf(Object elem)

返回 elem 最后一次出现处的索引。

int lastIndexOf(Object elem, int index)

从指定的索引处开始反向搜索 elem,并返回该对象的索引。

Object remove(int index)

移除此列表中指定位置处的元素。

void removeAllElements()

从此列表中移除所有组件,并将它们的大小设置为零。

boolean removeElement(Object obj)

从此列表中移除参数的第一个(索引最小的)匹配项。

void removeElementAt(int index)

删除指定索引处的组件。

void removeRange(int fromIndex, int toIndex)

删除指定索引范围中的组件。

Object set(int index, Object element)

使用指定元素替换此列表中指定位置上的元素。

void setElementAt(Object obj, int index)

将此列表指定 index 处的组件设置为指定的对象。

void setSize(int newSize)

设置此列表的大小。

int size()

返回此列表中的组件数。

Object[] toArray()

以正确顺序返回包含此列表中所有元素的数组。

String toString()

返回显示并标识此对象的属性的字符串。

void trimToSize()

对此列表的容量进行裁剪,使其等于此列表的当前大小。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JListJava Swing 组件中的一个列表组件,可以用来展示一组数据。以下是 JList用法: 1. 创建 JList 对象: ``` JList list = new JList(); ``` 2. 设置数据模型: JList 组件需要一个数据模型来存储数据,可以使用 DefaultListModel 类来创建数据模型: ``` DefaultListModel model = new DefaultListModel(); model.addElement("Item 1"); model.addElement("Item 2"); list.setModel(model); ``` 3. 设置显示样式: 可以通过设置 ListCellRenderer 对象来改变每个列表项的显示样式: ``` list.setCellRenderer(new MyListRenderer()); ``` 4. 添加到容器中: 将 JList 添加到容器中即可显示出来: ``` JScrollPane scrollPane = new JScrollPane(list); frame.getContentPane().add(scrollPane); ``` 完整示例代码: ``` import javax.swing.DefaultListModel; import javax.swing.JFrame; import javax.swing.JList; import javax.swing.JScrollPane; import javax.swing.ListCellRenderer; public class MyListRenderer implements ListCellRenderer<String> { public static void main(String[] args) { JFrame frame = new JFrame(); JList<String> list = new JList<String>(); DefaultListModel<String> model = new DefaultListModel<String>(); model.addElement("Item 1"); model.addElement("Item 2"); list.setModel(model); list.setCellRenderer(new MyListRenderer()); JScrollPane scrollPane = new JScrollPane(list); frame.getContentPane().add(scrollPane); frame.pack(); frame.setVisible(true); } public MyListRenderer() { } @Override public Component getListCellRendererComponent(JList<? extends String> list, String value, int index, boolean isSelected, boolean cellHasFocus) { JLabel label = new JLabel(); label.setText(value); if (isSelected) { label.setBackground(list.getSelectionBackground()); label.setForeground(list.getSelectionForeground()); } else { label.setBackground(list.getBackground()); label.setForeground(list.getForeground()); } label.setOpaque(true); return label; } } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值