java - 如何在Jtable中制作多行单元格

标签 java swing jtable row rows

我想知道是否有办法使用 Java Swing 在表中执行此操作。

Image for Example

我正在使用 Vector<Vector<String>> 处理表用于在 DefaultTableModel 对象中传递每列数据,但为此我不知道必须使用什么。

注意:表数据在运行时动态添加。

最佳答案

您必须将自定义的 TabelCellRendererJList View 结合使用。以下代码应该可以工作。

public class VectorTableCellRenderer extends JList<String> implements TableCellRenderer {

    @Override
    public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
        if (value instanceof Vector) {
            setListData((Vector) value);
        }

        if (isSelected) {
            setBackground(UIManager.getColor("Table.selectionBackground"));
        } else {
            setBackground(UIManager.getColor("Table.background"));
        }

        return this;
    }
}

编辑:如何使用 VectorTableCellRenderer

    VectorTableCellRenderer renderer = new VectorTableCellRenderer();

    //set TableCellRenderer into a specified JTable column class
    table.setDefaultRenderer(Vector.class, renderer);

    //or, set TableCellRenderer into a specified JTable column
    table.getColumnModel().getColumn(columnIndex).setCellRenderer(renderer);

这是我测试的输出。

enter image description here

关于java - 如何在Jtable中制作多行单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32775189/

相关文章:

java - Viewpager 中的 fragment 仅在从旁边的 fragment 打开时刷新

java - 问题 : controlling a Swing GUI from an external class and separating logic from user interface

java - 多页 JTable : impossible to display less items than rows

java - 动态添加行后jtable中的垃圾值

java - fragment 设计

Java套接字文件上传到服务器,服务器不获取字节数组的第一个字节

java - JComboBox.remove 不工作

java - Java FlowLayout 中的第 2 组组件

java - 如何在不更改 setAutoCreateRowSorter 完成的顺序的情况下刷新表(JTable)?

java - 验证 RSA SHA256 签名无法从证书获取私钥