Java中JList简单应用

 最近学习java用到了JList,对于向JList中添加数据,困扰了好久,上网查给的答案都没个合适的,问了老师才弄明白些,总结如下:

1.使用Vector:首先把你的数据项都存放在Vector中,然后调用JList的setListData()方法,将Vector添加到JList中

   Vector vt=new Vector();

   JList list=new JList();

   vt.add("aaa");

   vt.add("bbb");

   list.setListData(vt);

 

2.通过构造函数添加数据

String[] data = {"one", "two", "three", "four"};
JList dataList = new JList(data);

 

3.使用DefaultListModel添加数据,这种方法网上大部分都是像下面一样写的:

DefaultListModel m=(DefaultListModel)list.getModel();

for(int i=0;i<10;i++){

m.addElement(...);

}

但是我实验了几次都不成功,提示list.getModel()不能转换为DefaultListModel,或许他们少些了些什么,在使用之前,先要给JList

设定一个Model,例如:

DefaultListModel m=new DefaultListModel();

for(int i=0;i<10;i++){

m.addElement(...);

}

list.setModel(m);

除此之外,JList中还可以添加组件,方法很简单,只要用JList的add方法就可以了。

这些方法都是我亲自验证过的,没有问题的,提供给大家参考一下。

 

  

  • 9
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
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; } } ```

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值