java图像一屏显示

来源:百度知道 编辑:UC知道 时间:2024/07/05 06:14:44
我新建了一个JFrame,大小为(500,500),但现在有一个图片(600,600),如何可以使图片刚好填充容器,并且随着容器大小改变图片仍然刚好一屏显示?求高手赐教,如果附代码最好,谢谢!!!

final BufferedImage image = ImageIO.read(new File("/image.jpg"));

final JFrame frame = new JFrame();
JPanel imagePanel = new JPanel() {
public void paint(Graphics g) {
g.drawImage(image, 0, 0, frame.getWidth(), frame.getHeight(), null);
}
};

frame.setContentPane(imagePanel);
frame.setSize(500, 500);
frame.setVisible(true);

ImageIcon img = new ImageIcon("x:/y.jpg");

int width = img.getWidth();
int height = img.getHeight();

然后在构造JFrame的时候把JFrame的宽设置为:width;高设置为:height

搞定!!!

应该可以读出图片的大小,然后重新设置JFrame的大小吧?
或者不设JFrame的大小,调用pack,不知道行不行...

用JLabel参考哈
Icon logo1 = new ImageIcon("images\\login.png");
labbg = new JLabel(logo1);
labbg.setBounds(0, 0,300,175);//294,50
pnllogin.add(labbg);