答案
要在 JTable 上添加图像背景,您需要遵循以下步骤:
DefaultTableCellRenderer
,这个组件负责渲染 JTable 中的单元格。class ImageCellRenderer extends 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(new ImageIcon(value.toString()));
return label;
}
}
DefaultTableModel
,并为每个单元格指定自定义的 ImageCellRenderer
组件。DefaultTableModel model = new DefaultTableModel(data, columns) {
@Override
public TableCellRenderer getCellRenderer(int row, int column) {
return new ImageCellRenderer();
}
};
JScrollPane scrollPane = new JScrollPane(table);
scrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
<table border="1" id="table">
<thead>
<tr>
<th>Header 1</th>
<th>Header 2</th>
<th>Header 3</th>
</tr>
</thead>
<tbody>
<tr>
<td>Row 1, Cell 1</td>
<td>Row 1, Cell 2</td>
<td>Row 1, Cell 3</td>
</tr>
<tr>
<td>Row 2, Cell 1</td>
<td>Row 2, Cell 2</td>
<td>Row 2, Cell 3</td>
</tr>
</tbody>
</table>
以上代码示例展示了如何在 JTable 中添加图像背景。滚动 JTable 时,图像将保持在单元格中,而不是在页面上滚动。
领取专属 10元无门槛券
手把手带您无忧上云