我在鼠标点击事件中使用以下代码显示图像。当我使用下面的代码时,它会显示图像的路径,特别是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);
}
答案 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中使用多个“此类”组件而不会出现任何问题并保持代码清洁。