1 19 package org.lucane.client.widgets; 20 21 import java.awt.*; 22 import java.awt.event.*; 23 import java.util.Vector ; 24 import java.util.List ; 25 import javax.swing.*; 26 27 import org.lucane.client.Client; 28 29 30 33 public class ListBox extends JDialog 34 implements ActionListener, MouseListener 35 { 36 private Vector list; 37 private JButton btOK; 38 private JButton btCancel; 39 private JList lstSelection; 40 private JPanel pnlButton; 41 private JPanel pnlEast; 42 private JScrollPane pnlScroll; 43 private boolean accept; 44 45 53 public ListBox(JFrame owner, String title, String message, List list) 54 { 55 this(owner, title, message, new Vector (list)); 56 } 57 58 59 67 public ListBox(JFrame owner, String title, String message, Vector list) 68 { 69 super(owner, title, true); 70 this.list = list; 71 btOK = new JButton("OK", Client.getImageIcon("ok.png")); 72 btCancel = new JButton("Cancel", Client.getImageIcon("cancel.png")); 73 lstSelection = new JList(list); 74 pnlEast = new JPanel(new BorderLayout()); 75 pnlButton = new JPanel(new GridLayout(2, 0)); 76 pnlScroll = new JScrollPane(lstSelection); 77 78 pnlButton.add(btOK); 79 pnlButton.add(btCancel); 80 81 pnlEast.add(pnlButton, BorderLayout.NORTH); 82 83 btOK.addActionListener(this); 84 btCancel.addActionListener(this); 85 lstSelection.addMouseListener(this); 86 87 this.setSize(400, 200); 88 this.getContentPane().setLayout(new BorderLayout(3, 3)); 89 this.getContentPane().add(new JLabel(message), BorderLayout.NORTH); 90 this.getContentPane().add(pnlScroll, BorderLayout.CENTER); 91 this.getContentPane().add(pnlEast, BorderLayout.EAST); 92 } 93 94 99 public int selectItemByIndex() 100 { 101 if(list.size() == 0) 102 return -1; 103 104 lstSelection.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); 105 this.show(); 106 107 if(accept) 108 return lstSelection.getSelectedIndex(); 109 else 110 return -1; 111 } 112 113 118 public Object [] selectItems() 119 { 120 if(list.size() == 0) 121 return new Object [0]; 122 123 lstSelection.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION); 124 this.show(); 125 126 if(accept) 127 return lstSelection.getSelectedValues(); 128 else 129 return null; 130 } 131 132 137 public void actionPerformed(ActionEvent ev) 138 { 139 if(ev.getSource() == btOK) 140 accept = true; 141 else 142 accept = false; 143 144 this.dispose(); 145 } 146 147 149 public void mouseEntered(MouseEvent e) {} 150 public void mouseExited(MouseEvent e) {} 151 public void mousePressed(MouseEvent e) {} 152 public void mouseReleased(MouseEvent e) {} 153 public void mouseClicked(MouseEvent e) 154 { 155 if(e.getClickCount() > 1 && lstSelection.getSelectedIndex() >= 0) 156 { 157 accept = true; 158 this.dispose(); 159 } 160 } 161 } | Popular Tags |