应该只能通过String的拼接来实现!只能这样的!
不知道你所谓的不想用“|”来模拟分列是什么意思!?

解决方案 »

  1.   

    我的意思就是不用String的拼接来模拟。
      

  2.   

    ListCellRenderer自己写,想怎么显示都可以,

    public class MyListCellRenderer extends JLabel
        implements ListCellRenderer, Serializable{
       public MyListCellRenderer(){   }
      
        public Component getListCellRendererComponent(JList list,
            Object value,
            int index,
            boolean isSelected,
            boolean cellHasFocus){
          /*
           *自己实现,想怎么显示自定义。
           */
          return this;
        }
    }
    写完后,
    JComboBox box = new JComboBox();
    box.setRender(new MyListCellRenderer());
    ok!!
      

  3.   

    to Apocalypse(逍遥思辨) :
    你说的方法应该可以,我在一个JPanel上放上两个JLabel作为ListCellRenderer,能够表示两列数据了。你认为这样做如何?
    还有,因为选定以后,我只想显示第一列的数据,比如,在ComboBox的下拉List中选定了[021|上海]后,ComboBox中只显示[021]。
    现在我构造用String[][]来构造MyComboBoxModel,
    class ComboTableModel extends DefaultComboBoxModel{
      Object o = null;
     
      public ComboTableModel(Object[] value){
        super(value);
      }
      /** Set the selected item **/
      public void setSelectedItem(Object anItem){
        String[] values = (String[])anItem;
        o = values[0];
        System.out.println(o);
      }
     
      /** Return the selected item **/
      public Object getSelectedItem(){
        System.out.println("get:"+o);
        return o;
      }
    }
    可是,选定后,ComboBox总是为空,为什么?选中之后可是现在