gpt4 book ai didi

java - 在 JTable 单元格中单击时组合框不会弹出

转载 作者:行者123 更新时间:2023-12-01 09:38:13 24 4
gpt4 key购买 nike

我有一个问题,任何人都可以帮助我。这是我的 JTable,其中呈现的一列的单元格中有一个组合框。这是我的表格中的问题:当我单击组合框时,它不会弹出。当我打印 table.getValueAt(row,column) 时,它将返回单元格的上一个数据而不是组合框中的数据,并且它不会显示组合框以让用户选择。

JTable的代码:

public void setUpSportColumn(JTable table, TableColumn sportColumn) {
// Set up the editor for the sport cells.
JComboBox<String> comboBox = new JComboBox<String>();
DefaultComboBoxModel<String> model = new DefaultComboBoxModel<String>();
model.addElement("Snowboarding");
model.addElement("Rowing");
model.addElement("Knitting");
model.addElement("Speed reading");
model.addElement("Pool");
model.addElement("None of the above");
comboBox.setModel(model);
sportColumn.setCellEditor(new DefaultCellEditor(comboBox));

ComboBoxTableCellRenderer renderer = new ComboBoxTableCellRenderer();
renderer.setModel(model);
sportColumn.setCellRenderer(renderer);
}

image

最佳答案

TableRenderDemo是一个完整的工作示例,修改如下。

image

  1. 要查看编辑器更新 TableModel,请在 MyTableModel 中启用调试。

    private boolean DEBUG = true;

    结果将显示在控制台上:

    $ java TableRenderDemo
    Setting value at 0,2 to None of the above (an instance of class java.lang.String)
    New value of data:
    row 0: Mary Campione None of the above 5 false
    row 1: Alison Huml Rowing 3 true
    row 2: Kathy Walrath Knitting 2 false
    row 3: Sharon Zakhour Speed reading 20 true
    row 4: Philip Milne Pool 10 false
  2. 使用显示的方法之一 here让表格编辑器具有普通JComboBox的设计;已接受的answer上面说明了如何使用 UIManager 图标。

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

关于java - 在 JTable 单元格中单击时组合框不会弹出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38673083/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com