java 中的那个Jlist怎么才能显示东西

如题所述

分析,

1. 可以使用直接在构造时给一个参数(数组或者Vector类型)

比如 

String[] arr = {"张三","李四","王五"};
JList<String> list = new JList<String>(arr);

2. 使用一个DefaultListModel 可以动态的添加数据. ..

具体代码如下:(刚好昨天回答别人,写的一段代码. 可以做个示范)

全部菜品的JList中 ,单击菜品,可以出现在已选菜品中

Jlist1(全部菜品)就是用数组生成的Jlist

JList2(已选菜品)就是动态添加数据的JList

import java.awt.*;
import javax.swing.*;
import javax.swing.event.*;
 
public class MenuFrame extends JFrame implements ListSelectionListener {
    JTextField jtf;
    JList<String> jlist1, jlist2;
    static final String[] CP = { "青椒土豆丝", "西红柿炒鸡蛋", "麻辣小龙虾", "鱼香肉丝", "西湖醋鱼", "红汤老火锅", "可乐", "茉莉花茶" };
    DefaultListModel<String> dlm;//用dlm给jlist2动态添加数据
 
    public MenuFrame() {
        JPanel jpCenter = new JPanel(new GridLayout(1, 2));
        jlist1 = new JList<String>(CP);
        jlist1.addListSelectionListener(this);
        JScrollPane jsp1 = new JScrollPane(jlist1);//滚动面板
        jsp1.setBorder(BorderFactory.createTitledBorder("全部菜品"));//带标题的边框
        jpCenter.add(jsp1);
        jlist2 = new JList<String>();
        dlm = new DefaultListModel<String>();
        jlist2.setModel(dlm);
        JScrollPane jsp2 = new JScrollPane(jlist2);
        jsp2.setBorder(BorderFactory.createTitledBorder("已选菜品"));
        jpCenter.add(jsp2);
 
        add(jpCenter);
        jtf = new JTextField(5);
        jtf.setEnabled(false);
        jtf.setText("0道");
        JLabel jl = new JLabel("你已经选中的菜单数量是:");
        JPanel jpSouth = new JPanel();
        jpSouth.add(jl);
        jpSouth.add(jtf);
        add(jpSouth, BorderLayout.SOUTH);
        setTitle("点菜");
        setSize(300, 200);//窗口大小
        setLocationRelativeTo(null);//窗口居中
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        setVisible(true);
    }
 
    public static void main(String[] args) {
        new MenuFrame();//启动窗口
    }
 
 
    public void valueChanged(ListSelectionEvent e) {
        if (e.getValueIsAdjusting()) {
            dlm.addElement(jlist1.getSelectedValue());//给dlm添加元素,更新jlist2的数据
            jtf.setText(dlm.size()+"道");
             
        }
    }
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-06-07
Java里面你只要给list控件赋值一个含值的数组就可以了。
相似回答