1 32 33 package it.businesslogic.ireport.gui.fonts; 34 35 39 import javax.swing.*; 40 41 import java.awt.*; 42 import java.awt.event.*; 43 44 public class CheckBoxList extends JList 45 { 46 47 public CheckBoxList() 48 { 49 super(); 50 51 setModel( new DefaultListModel()); 52 setCellRenderer(new CheckboxCellRenderer()); 53 54 addMouseListener(new MouseAdapter() 55 { 56 public void mousePressed(MouseEvent e) 57 { 58 int index = locationToIndex(e.getPoint()); 59 60 if (index != -1) { 61 Object obj = getModel().getElementAt(index); 62 if (obj instanceof JCheckBox) 63 { 64 JCheckBox checkbox = (JCheckBox)obj; 65 66 checkbox.setSelected( 67 !checkbox.isSelected()); 68 repaint(); 69 } 70 } 71 } 72 } 73 ); 74 75 setSelectionMode(ListSelectionModel.SINGLE_SELECTION); 76 } 77 78 79 public int[] getCheckedIdexes() 80 { 81 java.util.List list = new java.util.ArrayList (); 82 DefaultListModel dlm = (DefaultListModel)getModel(); 83 for (int i=0; i<dlm.size(); ++i) 84 { 85 Object obj = getModel().getElementAt(i); 86 if (obj instanceof JCheckBox) 87 { 88 JCheckBox checkbox = (JCheckBox)obj; 89 if (checkbox.isSelected()) 90 { 91 list.add(new Integer (i)); 92 } 93 } 94 } 95 96 int[] indexes = new int[list.size()]; 97 98 for (int i=0; i<list.size(); ++i) 99 { 100 indexes[i] = ((Integer )list.get(i)).intValue(); 101 } 102 103 return indexes; 104 } 105 106 107 public java.util.List getCheckedItems() 108 { 109 java.util.List list = new java.util.ArrayList (); 110 DefaultListModel dlm = (DefaultListModel)getModel(); 111 for (int i=0; i<dlm.size(); ++i) 112 { 113 Object obj = getModel().getElementAt(i); 114 if (obj instanceof JCheckBox) 115 { 116 JCheckBox checkbox = (JCheckBox)obj; 117 if (checkbox.isSelected()) 118 { 119 list.add(checkbox); 120 } 121 } 122 } 123 return list; 124 } 125 } 126 127 | Popular Tags |