タイトルにあるように、jsliderを動かしたときに、(longblobに保存されている)画像を非常に高速に取得したいと思います。360のケースがあり、エラーなしで動作しますが、問題は、jsliderを移動したときの各ケース/画像の遅延/遅延にあります。ローカルマシンから取得した画像を使用してこのアイデアをテストしましたが、非常に高速でクリーンに動作します。問題はインターネット接続にある可能性があることは知っていますが、少なくとも3〜4 MB/sのダウンロード/アップロードがあると信じてください。
いくつかの補足事項:テーブルエンジン:MyISAM列:すべての画像を含むlongblob〜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