【问题标题】:Adding Selected JList component to Object将选定的 JList 组件添加到对象
【发布时间】:2015-03-24 22:56:18
【问题描述】:

我刚刚做了一个小程序,客户可以从 JList 中选择 3 种颜色 以及我需要如何将这些颜色添加到客户对象

我有这样的构造函数

    public Customer (String cc1, String cc2, String cc3){
    this.colour1 = cc1;
    this.colour2 = cc2;
    this.colour3 = cc3;

我写的简单代码是这样的

public class Test2 extends JApplet {
Container container;
JButton b1;
JPanel panel;
JTextArea area;
String[] colours = {"Yellow", "Orange", "Red", "Purple",
        "Blue", "Green", "Brown", "Black", "White"};
JList list, selectList;
String cc1, cc2, cc3; //Chosen colour

public void init() {
    container = getContentPane();
    panel = new JPanel(new FlowLayout());
    area = new JTextArea();
    b1 = new JButton("Submit");
    list = new JList(colours);
    selectList = new JList();
    list.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
    list.setVisibleRowCount(5);

    panel.add(new JScrollPane(list));
    panel.add(b1);
    panel.add(new JScrollPane(selectList));
    panel.add(area);
    container.add(panel);

    b1.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            for(int i = 0; i < colours.length; i++) {
                Object selected[] = list.getSelectedValues();
                selectList.setListData(selected);
            }
        }
    });
}

}

如何使该人选择的颜色进入客户对象 谢谢

【问题讨论】:

    标签: java swing jlist


    【解决方案1】:

    如果Customer 已经存在,那么你需要某种setter,否则只需创建一个新的Customer 对象

    您想从列表中获取选定的值并将它们添加到您可以控制的 String 数组中,但您最多只想添加 3 个项目

    b1.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            Object[] values = list.getSelectedValues();
            String[] colors = new String[3];
            for (int index = 0; index < Math.min(3, values.length); index++) {
                colors[index] = values[index].toString();
            }
            Customer customer = new Customer(colors[0], colors[1], colors[2]);
        }
    });
    

    或者类似的东西

    【讨论】:

    • 我计划在每个 for 循环中创建新的客户对象。
    • 什么循环?对于每个选定的项目?每个Customer 的颜色是否相同?
    • 所以每个客户都会有颜色0~2
    • 有多少客户?他们都得到相同的选定颜色列表吗?
    • 我正计划向客户“名称”和客户对象数组添加额外属性,该对象最多可以有 100 个客户,并且他们都将具有不同的选定颜色
    猜你喜欢
    • 2012-03-19
    • 2015-10-30
    • 1970-01-01
    • 2016-08-03
    • 2014-01-29
    • 1970-01-01
    • 2022-01-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多