如何使JComboBox下拉列表始终在JTable中可见

时间:2015-06-09 23:21:37

标签: java swing jtable jcombobox

我使用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);
}

1 个答案:

答案 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;
    }
});