gpt4 book ai didi

java - 如何在 JTable Cell 中显示多行

转载 作者:搜寻专家 更新时间:2023-10-31 08:13:56 24 4
gpt4 key购买 nike

我想创建一个如下图所示的JTable:enter image description here

将使用哪个 java 类,可能如何使用?

最佳答案

多行 JTable 单元格可以轻松使用自定义的 TableCellRenderer。使用以下步骤创建 TableCellRenderer

第 1 步:创建 TableCellRenderer

以下代码显示为 String[] 值创建多行 TableCellRenderer。可以将 String[] 更改为 Vector 或其他 Collection 类型

public class MultiLineTableCellRenderer extends JList<String> implements TableCellRenderer {

@Override
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
//make multi line where the cell value is String[]
if (value instanceof String[]) {
setListData((String[]) value);
}

//cell backgroud color when selected
if (isSelected) {
setBackground(UIManager.getColor("Table.selectionBackground"));
} else {
setBackground(UIManager.getColor("Table.background"));
}

return this;
}
}

第 2 步:将 TableCellRenderer 设置到 JTable

    MultiLineTableCellRenderer renderer = new MultiLineTableCellRenderer();

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

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

这是我测试过的截图:

Multi-line TableCellRenderer Test

关于java - 如何在 JTable Cell 中显示多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9955595/

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