我想知道是否有办法使用 Java Swing 在表中执行此操作。
我正在使用 Vector<Vector<String>>
处理表用于在 DefaultTableModel 对象中传递每列数据,但为此我不知道必须使用什么。
注意:表数据在运行时动态添加。
最佳答案
您必须将自定义的 TabelCellRenderer
与 JList
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);
这是我测试的输出。
关于java - 如何在Jtable中制作多行单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32775189/