最近实现是一些功能不方便。想做一个CCheckListBox复选表框
请高人指教,想做成一个组件。以后好重用~

解决方案 »

  1.   

    CCheckListBox  is what ?
      

  2.   

    CCheckListBox  is what ?
      

  3.   

    估计是JList中的对象是CheckBox了
    import java.awt.BorderLayout;
    import java.awt.Component;
    import javax.swing.JCheckBox;
    import javax.swing.JFrame;
    import javax.swing.JList;
    import javax.swing.JScrollPane;
    import javax.swing.ListCellRenderer;public class CheckBoxItem implements ListCellRenderer {
        
        static MyData[] data = new MyData[20];;
        
        public static void main(String[] args)  {
            
            for (int i = 0; i < data.length; i++) {
                data[i] = new MyData( "Item " + i );
            }
            
            JFrame frm = new JFrame("CheckBox list item.");
            frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            JList lst = new JList(data);
            lst.setCellRenderer(new CheckBoxItem());
            frm.getContentPane().add(new JScrollPane(lst), BorderLayout.CENTER);
            frm.pack();
            frm.show();
        }
        
        public CheckBoxItem()  {
            _box = new JCheckBox();
        }
        
        public Component getListCellRendererComponent(JList list,
                Object value, int index, boolean isSelected, boolean cellHasFocus)  {
            
            _box.setText(value.toString());
            _box.setSelected(isSelected);
            
            data[index].m_selected =  isSelected;
            
            return _box;
        }
        
        private JCheckBox _box;
        
    }class MyData{
        
        String m_subject;
        boolean m_selected;
        
        public MyData( String temp ){
            m_subject = temp;
            
        }
        
        public boolean isSelected(){
            return  m_selected;
        }
        
        public String toString(){
            return m_subject;
        }
    }