Я только начинаю с Java-кодирования и на самом деле пытаюсь создать простое приложение в разгаре - с двумя полями comboBox, содержащими несколько столбцов (каждый комбо имеет свой список).
Я изучаю решение, представленное в stackoverflow, и создаюкод ниже.Это работает, но только для одного типа списка.Я хочу создать более универсальный код, чтобы обрабатывать в одном классе более одного типа списка.Могу ли я получить тип List и обработать в одном классе два разных ComboBox List, или я должен искать другие варианты, чтобы сделать это.Я очень благодарен, чтобы дать мне совет, или дать лучшее решение (возможно, я ошибаюсь, и это лучшее решение для этого).
Мой код:
import java.awt.Component;
import java.util.List;
import javax.swing.DefaultListCellRenderer;
import javax.swing.JComboBox;
import javax.swing.JLabel;
import javax.swing.JList;
public class MyComboBox extends JComboBox {
static final long serialVersionUID = 1L;
public MyComboBox(List<?> list) {
super(list.toArray());
if (!list.isEmpty()) {
this.setRenderer(new ComboCustomRender());
}
}
private class ComboCustomRender extends DefaultListCellRenderer {
static final long serialVersionUID = 1L;
@Override
public Component getListCellRendererComponent(JList<?> list, Object value, int index, boolean isSelected,
boolean cellHasFocus) {
JLabel label = (JLabel) super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
Foo foo = (Foo) value;
label.setText(foo.getField1() + foo.getField2);
return label;
}
}
}