Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/359.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 单击(鼠标事件)行时如何在jTable单元格中设置图像?_Java_Swing_Jtable_Imageicon_Renderer - Fatal编程技术网

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

Java 单击(鼠标事件)行时如何在jTable单元格中设置图像?,java,swing,jtable,imageicon,renderer,Java,Swing,Jtable,Imageicon,Renderer,单击(鼠标事件)行时如何在jTable单元格中设置图像?如果选择第一行,图像将显示在该行中。然后单击第二行,图像将显示在第二行中?如何使用表格单元格渲染器或准备渲染器进行此操作?最好的方法是创建自己的表格单元格渲染器 public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {

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

最好的方法是创建自己的表格单元格渲染器

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
}

类似于此。

如果您只希望图像显示在表格单元格中,请使用for
ImageIcon
并确保您的
TableModel
为该列返回
ImageIcon.class


如果你想让图片在点击时出现,请考虑使用“<代码> > StCurkEndotToSoT(1)和你的图像作为<代码>图标>代码> < /P> < P>这是你在JTAL中显示图像的第四个问题,所以我猜你已经知道如何做了。 因此,如果要在选择更改时更新行,则需要使用ListSelectionListener。然后,当侦听器启动时,您将需要更新TableModel以从上一行中删除图标,并更新当前行中的图标


显示您可以获取要更新的行号。

返回super(…);super()中会出现什么?super是调用超类或超类的方法。因此,您必须调用已重写的方法。当我这样使用时,图像将不会出现在JTable中。您必须修改代码,而不仅仅是复制它。您必须说出图像的位置,并且需要加载它。看看java的ImageIO类。哦,对不起,kleopatra是对的。您必须将图像放置在jLabel上。返回JlabelPost您的SSCCE演示问题。