如何在单击(鼠标事件)行时在jTable单元格中设置图像?

时间:2012-02-10 09:39:10

标签: java swing jtable imageicon renderer

如何在单击(鼠标事件)行时在jTable单元格中设置图像?如果我选择第一行,图像将显示在该行中。然后我单击第二行,图像将显示在第二行?使用表格单元格渲染器或准备渲染器来执行此操作?

3 个答案:

答案 0 :(得分:2)

如果您只想让图片显示在表格单元格中,请使用ImageIcon TableModel并确保ImageIcon.class为该列返回setClickCountToStart(1)

如果您希望图片显示以响应点击,请考虑使用default rendererIcon的变体,并将您的图片用作{{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
}

像这样。