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
| class ListDataAdapter extends DefaultComboBoxModel {
private static final long serialVersionUID = 1L;
private List<File> list;
public ListDataAdapter(List<File> list) {
this.list= list;
}
public int getSize() {
return list.size();
}
public Object getElementAt(int index) {
return list.get(index);
}
public Object getSelectedItem() {
if (mModel.size() == 1) {
return list.get(0);
} else {
return super.getSelectedItem();
}
}
//et puis avec un cell renderer :
private class ListRenderer implements ListCellRenderer {
private DefaultListCellRenderer defaultRenderer = new DefaultListCellRenderer();
public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
JLabel renderer = (JLabel) defaultRenderer.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
// Teste s'il y a un libellé sélectionné.
if (value != null) {
File file = (File) value;
if (file.getName() != null) {
renderer.setText(file.getName());
} else {
renderer.setText(" ");
}
}
return renderer;
}
} |