如何在单击(鼠标事件)行时在jTable单元格中设置图像?如果我选择第一行,图像将显示在该行中。然后我单击第二行,图像将显示在第二行?使用表格单元格渲染器或准备渲染器来执行此操作?
答案 0 :(得分:2)
如果您只想让图片显示在表格单元格中,请使用ImageIcon
TableModel
并确保ImageIcon.class
为该列返回setClickCountToStart(1)
。
如果您希望图片显示以响应点击,请考虑使用default renderer与Icon
的变体,并将您的图片用作{{1}}。
答案 1 :(得分:1)
这是关于在JTable中显示图像的第4个问题,所以我猜你已经知道如何做了。
因此,如果要在选择更改时更新行,则需要使用ListSelectionListener。然后,当侦听器触发时,您将需要更新TableModel以从上一行中删除图标并更新当前行中的图标。
JList: previous selected item显示您可以获取要更新的行号。
答案 2 :(得分:-2)
执行此操作的最佳方法是使您拥有自己的表格单元格渲染器。
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
if(isSelected){
return new Image(); // if selected
}
return super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column); // if not selected do the normal stuff
}
像这样。