2015-03-24 118 views
0

我只是做了一个小程序,客户选择从JList中 和3种颜色一些我需要如何将这些颜色添加到客户对象添加选择JList组件到对象

我有构造这样

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); 
      } 
     } 
    }); 
} 

}

如何让这个人选择了这样一种颜色变为Customer对象 谢谢

回答

0

如果Customer已经存在,那么你就需要某种形式的二传手,否则只需要创建一个新的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]); 
    } 
}); 

还是什么simular

+0

我打算为循环创建新的客户对象。 – 2015-03-24 23:18:34

+0

什么循环?对于每个选定的项目?每个客户都得到相同的颜色吗? – MadProgrammer 2015-03-24 23:19:39

+0

“For loop”抱歉... – 2015-03-24 23:20:44