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

标签 java swing jtable jcombobox

我将 JComboBox 与 JTables 一起使用,但下拉菜单仅在单击时“可见”。如何更改此默认行为并使其始终可见且用户友好?

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

最佳答案

据我了解,您希望单元格始终看起来像 JComboBox,而不是 jLabels。

这可以通过向 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;
    }
});

关于java - 如何使 JComboBox 下拉列表在 JTable 中始终可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30744524/

相关文章:

java - View 排序和过滤 : GlazedList sorting and filtering + JTable vs Glazed event list+JXTable

java - 使用 JTattoo 外观时如何更改 JTable 标题字体

java - 如何手动添加 jlabels 到滚动 Pane ?

java - 如何通过带有 MouseListener 的 JGlassPane 单击到它后面的 UI

java - Android Java 对象列表与图像

java - 无法将图像绘制到 JFrame

java.util.ArrayList 无法转换为 java.util.Vector

java - 我使用解析正确吗?

java - 用于根据规则集重命名/移动文件的 Java API

java - 如果对象包含在列表中,为什么 LinkedList.indexOf() 返回 -1?