正如标题所说,我想在移动jslider时非常快地检索图像(存储在longblob中)。我有360个案例,它没有错误,但问题在于移动jslider时每个案例/图像的延迟/延迟。我用本地机器上的图像测试了这个想法,它的工作非常快/干净。我知道问题可以来自互联网连接,但相信我,我至少有3-4 MB / s的下载/上传。
几个额外的笔记: 表引擎:MyISAM column:longblob with every images~170-200 kb - .png
//calling jslider and setup
jslider1 = new javax.swing.JSlider(); //my jslider
jslider1.setMajorTickSpacing(10);
jslider1.setMaximum(360);
jslider1.setMinorTickSpacing(5);
jslider1.setOrientation(javax.swing.JSlider.VERTICAL);
//and my change event
private void jslider1StateChanged(javax.swing.event.ChangeEvent evt) {
int x = jslider1.getValue();
switch (x) {
case 1:
try {
String sql = "select imga from test where deg ='" + x + "'";
pst = conn.prepareStatement(sql);
rs = pst.executeQuery();
if (rs.next()) {
byte[] imagedata = rs.getBytes("imga");
format = new ImageIcon(imagedata);
jLabel1.setIcon(format); //where I put my image
}
} catch (Exception e) {
e.printStackTrace();
}
break;
case 2:
//[...] //I have 360 cases
}
} // close state changed
答案 0 :(得分:0)
为什么要将图像保存在长片中呢?你不能把它们存放在Jar本身。如果您仍想从数据库longblob中检索,请考虑使用Caching从数据库加载longblobs,并在Swing应用程序启动时使用Initializing Asynchronous Thread将其缓存在本地系统中。