用Java或者在jsp页面中不知道这种下拉框怎么做?上面的是下拉框可以分为两列,下面的是可以新增或者清空,有谁知道?
图见下:
http://blog.163.com/yuguichong1984/

解决方案 »

  1.   

    下面的代码是你第一个要求的简单实现,比较简陋,参考一下吧!/*
     * ComData.java
     */
     
    public class ComData
    {
    String left;
    String right;

    public ComData(String left, String right)
    {
    this.left = left;
    this.right = right;
    }

    public String toString()
    {
    return left+"|"+right;
    }
    }/*
     * MyCellReaderer.java
     */import javax.swing.*;
    import java.awt.*;public class MyCellRenderer extends JPanel implements ListCellRenderer {
    private JLabel left, right;    public MyCellRenderer() {
         this.setLayout(new GridLayout(1,2));
         left = new JLabel();
         right = new JLabel();
         this.add(left);
         this.add(right);
            setOpaque(true);
        }
        
        public void paintComponent(Graphics g)
        {
         super.paintComponent(g);
         g.drawRect(0,0, this.getWidth()/2, this.getHeight());
         g.drawRect(this.getWidth()/2, 0, this.getWidth()/2, this.getHeight());
        }
        
        public Component getListCellRendererComponent(
            JList list,
            Object value,
            int index,
            boolean isSelected,
            boolean cellHasFocus)
        {
         int pos = value.toString().indexOf("|");
            left.setText(value.toString().substring(0,pos));
            right.setText(value.toString().substring(pos+1));
            setBackground(isSelected ? Color.red : Color.white);
            setForeground(isSelected ? Color.white : Color.black);
            return this;
        }
    }/* 
     * Test.java
     */
    import javax.swing.*;
    import java.awt.*;public class Test extends JFrame
    {
    private MyCellRenderer mc = new MyCellRenderer();
    private JComboBox jcb = new JComboBox();
    private DefaultComboBoxModel dcm = new DefaultComboBoxModel();

    public Test()
    {
    dcm.addElement(new ComData("1","Data-1"));
    dcm.addElement(new ComData("2","Data-2"));
    dcm.addElement(new ComData("3","Data-3"));
    dcm.addElement(new ComData("4","Data-4"));

    jcb.setModel(dcm);

    jcb.setRenderer(mc);

    this.getContentPane().add(jcb, BorderLayout.NORTH);

    pack();

    this.setVisible(true);
    }

    public static void main(String[] args)
    {
    new Test();
    }
    }