我想创建一个如下图所示的JTable
:
将使用哪个 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);
这是我测试过的截图:
关于java - 如何在 JTable Cell 中显示多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9955595/