界面挺漂亮,别用 JLabel 了,拿它显示大图片缩放时肯定快不了,自己绘制图片或写个显示图片缩略图的组件,这样性能能高不少。创建缩略图组件能用到 java.awt.Canvas(用来绘制和显示缩略图)和 java.awt.Image.getScaledInstance(int width, int height, int hints)(用于生成具有一定大小和质量的缩略图)。
另外绘制缩略图的漂亮边框能用到 javax.swing.border.Border 接口的 paintBorder(Component c, Graphics g, int x, int y, int width, int height) 方法,具体做法参照:import javax.swing.border.Border; import javax.swing.BorderFactory; ... Border border = BorderFactory.createXxxxBorder(); //Xxxx 表示边框绘制器的样式名称。 border.paintBorder(yourComponent, yourGraphics, x, y, width, height); //分别指定绘制边框的组件,由组件获得的Graphics,绘制的边框左上角的xy坐标及绘制边框的外缘宽高。
Thanks !嗯,通道机制不是很了解.请指教!嗯,逻辑是没有问题的!
嗯,虽然是一个解决方法,可是项目已经到了后期.不可能重新来过的.
嗯,现在正在为这个头痛着....java swing 痛并快乐着!各位高手有没有好的解决方案呀!明天加分求解!
学习
Thanks!
安装后用java命令行调用
就行
嗯,就是上图片所示的哪样子!通过控制杆来查看大图or小图!缩放的时候很慢,很卡!是从数据库中得到图片路径.再显示在JLabel上的.谢谢楼上的各位了!期待好的解决方案!
import javax.swing.BorderFactory;
...
Border border = BorderFactory.createXxxxBorder(); //Xxxx 表示边框绘制器的样式名称。
border.paintBorder(yourComponent, yourGraphics, x, y, width, height); //分别指定绘制边框的组件,由组件获得的Graphics,绘制的边框左上角的xy坐标及绘制边框的外缘宽高。
JAVA资料太多?选中想收藏的文字(图片),右键选“收录到易载”,搞定!
sagezk Thanks!我现在改成用JPanel显示 效果还是不是很明显!假如我用自己写一个图片控件:是继承 javax.swing.JComponent,还是直接继承java.awt.Component呢?实现相关方法!
yirentianran Thanks!找了相关的资料!可是没有找到下载的地址,找到的是一些没有提供下载的地址!
虽然是08年的贴。