我需要将图像放在jlabel上,我的图像存储在MySql表中,然后使用以下代码获取这些图像 -
byte[] imagedata=rs.getBytes(6); // rs is ResultSet of table
format=new ImageIcon(imagedata);
jLabel15.setIcon(format);
如何调整我想在jLabel15上显示的“格式”。
已编辑:表格中的图片列为bigblob数据类型
答案 0 :(得分:3)
您可以通过以下方式缩放图片,
Image img = format.getImage().getScaledInstance(50, 50, Image.SCALE_SMOOTH);
jLabel15.setIcon(new ImageIcon(img));
我已将图像缩放到50X50,您可以将其缩放到所需的大小
答案 1 :(得分:1)
我认为一种方法是覆盖ImageIcon的paintIcon(...)
方法,如果图标本身已调整大小,则调整图像大小。
答案 2 :(得分:1)
以下是如何在调整组件大小时调整图像大小的示例。
import java.awt.Dimension;
import java.awt.Image;
import java.awt.event.ComponentAdapter;
import java.awt.event.ComponentEvent;
import java.net.URL;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.WindowConstants;
public class ResizedLabelTest {
public static void main(String[] args) throws Exception {
JFrame frm = new JFrame("ResizedLabel test");
URL url = new URL("http://i.stack.imgur.com/37IMZ.jpg?s=128&g=1");
final ImageIcon icon = new ImageIcon(url);
JLabel label = new JLabel(icon);
label.addComponentListener(new ComponentAdapter() {
@Override
public void componentResized(ComponentEvent e) {
JLabel label = (JLabel) e.getComponent();
Dimension size = label.getSize();
Image resized = icon.getImage().getScaledInstance(size.width, size.height, Image.SCALE_SMOOTH);
label.setIcon(new ImageIcon(resized));
}
});
frm.add(label);
frm.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
frm.pack();
frm.setVisible(true);
}
}