java - 如何让JComboBox 表格编辑器具有普通JComboBox 的设计?

标签 java swing jtable jcombobox tablecelleditor

我有一个 JComboBox 用作 JTable 中的编辑器。在图片中,您可以在标记为 Produs 的列中看到它们。我想在网格单元格中使用独立的 JComboBox 设计,尤其是组合框的右侧部分,网格单元格中缺少三角形,因此用户会知道网格单元是组合框,无需单击其中之一。如何将 JComboBox (IsBackFlush) 的设计应用到网格中的 JComboBoxes

本质上,我如何根据comboBox1的设计来设计comboBox2?谢谢。

cropped image

最佳答案

从这个完整的 example 开始工作作为通用引用框架,请注意 ITEM_COL 列中未选定单元格的出现是由于 default renderer 造成的.独立 JComboBox 的典型箭头按钮仅在调用单元格的编辑器时出现,例如通过单击单元格或在选择单元格时按 Space。您可以在自定义渲染器中添加三角形:

final JComboBox combo = new JComboBox(items);
TableColumn col = table.getColumnModel().getColumn(ITEM_COL);
col.setCellRenderer(new DefaultTableCellRenderer(){

    @Override
    public Component getTableCellRendererComponent(JTable table, Object value,
            boolean isSelected, boolean hasFocus, int row, int column) {
        JLabel label = (JLabel) super.getTableCellRendererComponent(table,
            value, isSelected, hasFocus, row, column);
        label.setIcon(UIManager.getIcon("Table.descendingSortIcon"));
        return label;
    }
});

附录:@aterai 提供了一个更完整的示例 here .

关于java - 如何让JComboBox 表格编辑器具有普通JComboBox 的设计?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17342917/

相关文章:

java - 使用 MVC 和 DAO 模式在 JSP 页面中的 HTML 中显示 JDBC 结果集

java - 将表单的数据提交到 java Set

java - 将 JTextField 与模型结合使用(在 focusLost 上)并使用模型数据运行操作

java - 无法从 JTable 更新单元格

Java - 从文件中转义字符串中的双引号

java - 支持 JavaScript 的 Java 轻量级代码编辑器小部件

java - 如何使 Java 选项卡式 Pane 从右到左显示选项卡?

java - 如何从绑定(bind)的 JTable 中删除行?

java - 如何将一行从 JTable 复制到另一个 JTable

Java8,HttpClient,接收 "Received fatal alert: handshake_failure"