1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
|
public class TableComboBox extends JComponentComboBox {
private JXTable tbl;
private String[] colsNames;
private Object[][] data;
public TableComboBox(String[] colsNames, Object[][] data) {
this.colsNames = colsNames;
this.data = data;
try {
setSelectedItem(null);
new JComponentComboBox();
JScrollPane sp = new JScrollPane(getTbl());
sp.setPreferredSize(new Dimension(900, 150));
setPopupComponent(sp);
} catch (Exception e) {
e.printStackTrace();
}
}
public synchronized void addItem(Object anObject) {
super.addItem(anObject);
}
private JXTable getTbl() {
if ( tbl == null ){
final DefaultTableModel tableModel = new DefaultTableModel(data, colsNames);
tbl = new JXTable();
tbl.setModel(tableModel);
tbl.addMouseListener(new MouseAdapter(){
public void mousePressed(MouseEvent e) {
mouseClicked(e);
super.mousePressed(e);
}
public void mouseClicked(MouseEvent e) {
String str = tbl.getValueAt(tbl.getSelectedRow(),0).toString();
str += " "+ tbl.getValueAt(tbl.getSelectedRow(),1).toString();
str += " "+ tbl.getValueAt(tbl.getSelectedRow(),2).toString();
addItem(str);
setSelectedItem(str);
hidePopup();
}
});
tbl.setBackground(Color.WHITE);
}
return tbl;
}
} |
Partager