我使用JComboBox和JTables,但下拉菜单只有#34;可见"当它被点击时。如何更改此默认行为并使其始终可见且用户友好?
public void start(){
TableColumn column = table.getColumnModel().getColumn(0);
JComboBox comboBox = new JComboBox();
DefaultComboBoxModel model = new DefaultComboBoxModel();
model.addElement("a");
model.addElement("b");
comboBox.setModel(model);
}
答案 0 :(得分:0)
据我所知,你希望单元格看起来像JComboBoxes,而不是jLabel。
通过向TableColumn添加TableCellRenderer可以轻松实现。 粘贴以下代码应具有所需的效果。
column.setCellRenderer(new TableCellRenderer() {
JComboBox box = new JComboBox();
@Override
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus,
int row, int column) {
box.removeAllItems();
box.addItem(value.toString());
return box;
}
});