我正在使用JAVA和Netbeans创建一个简单的照片目录。我有基本的Swing布局,一切正常,我可以从数据库、增量记录等存储和检索文本/数字等。这一切都很好。
我真的不知道如何存储图像并在jFrame中查看它们。
我想把图像存储为我认为的文件路径(而不是BLOB),因为我读过这更好吗?
我目前正在使用getText和setText来显示表单上的数据库条目,这一切都很好。如下所示:
String location = rs.getString("Location");
textLocation.setText(location);
我正在使用JavaDB derby数据库连接。
我找了一本教程,但运气不太好。有关于图像等的教程,但并没有真正从数据库中存储/检索它们。
如果有人能为我指明正确的方向,或者为我提供一个很好的教程,那就太棒了。
*更新*
谢谢你的帮助。我想我应该分享一下结果。
设置图像文件夹位置的路径:
private static final String PATH = "/images/";
分配字符串
String image = rs.getString("ImageURL");
将图像添加到标签
image_label.setIcon(new javax.swing.ImageIcon(getClass().getResource(PATH + image)));
再次感谢。
需要考虑的事项(如果您的图像文件是嵌入式资源,并且不依赖于您的文件系统)
-
您将如何存储图像路径?您可以简单地只存储文件名
image.png
-
您最终将使用什么完整的文件路径。有一个设置的路径(不包括图像文件名),并基于您的应用程序文件结构,即您将使用的路径,与图像文件名连接。示例
ProjectRoot src resources images image.png private static final String PATH = "/resources/images/";
-
你将如何加载图像。您应该使用
getClass().getResource()
从类路径读取图像,然后只需将图像加载到ImageIcon
中,并最终将其添加到JLabel
中。示例String location = rs.getString("Location"); Image image = ImageIO.read(getClass().getResource(PATH + location)); ImageIcon icon = new ImageIcon(image); JLabel label = new JLabel(icon); // add label to something.