文件路径显示而不是jtable中的图像

时间:2012-02-11 05:55:17

标签: java image swing jtable mouse

我在鼠标点击事件中使用以下代码显示图像。当我使用下面的代码时,它会显示图像的路径,特别是cell.how,以显示该特定单元格中的图像?

private void jTable1MouseClicked(java.awt.event.MouseEvent evt) { 
URL url = getClass().getResource("image/Pointer.GIF");
 ImageIcon testIcon = new ImageIcon(url);
 jTable1.setValueAt(testIcon, 0, 2);
}

1 个答案:

答案 0 :(得分:1)

编写您自己的可重用组件并自行管理事件。您将ImageIcon及其路径包装在一个类中。注册该类的单击处理程序并侦听单击事件,即更改容器中的组件时。同时保留state变量并交换容器的内容。要显示path动态创建JLabel并将其添加到容器中,或者您可以在创建组件时构建JLabel

您的组件可能会像这样开始

public class MyComponent extends JComponent {
     private JLabel label; //This displays the path
     private ImageIcon image; //This displays the image

     //Create a container of your wish

     //Attach a click handler to both the label and the image or the container

     //OnClick swap the JComponent in your container and repaint()!

     //Construct it like this:
     MyComponent(String path) {
        //Initialize JLabel with "text" as the path
        //Load ImageIcon from the path
     }
}

这只是一个起点。这种方法创建了一个可重用的组件,因此,您可以在JLabel中使用多个“此类”组件而不会出现任何问题并保持代码清洁。