我正在尝试从目录加载图像并将其作为图标放置在中JLabel。但是,当图像尺寸很大时,就不能完全放入标签中。我尝试调整图像的大小以适合标签,但无法正常工作。我可以知道我要去哪里了吗?
JLabel
JFileChooser choose=new JFileChooser(); choose.showOpenDialog(null); File f=choose.getSelectedFile(); String filename=f.getAbsolutePath(); path.setText(filename); ImageIcon icon=new ImageIcon(filename); Image img=icon.getImage(); BufferedImage bi = new BufferedImage(img.getWidth(null), img.getHeight(null), BufferedImage.TYPE_INT_ARGB); Graphics g = bi.createGraphics(); g.drawImage(img,500, 500, null); ImageIcon newIcon = new ImageIcon(bi); image_label.setIcon(newIcon);
BufferedImage img = ImageIO.read(…); Image scaled = img.getScaledInstance(500, 500, Image.SCALE_SMOOTH); ImageIcon icon = new ImageIcon(scaled);
当心,这将缩放图像,使其为正方形。看一看Java:维护JPanel背景图像的长宽比,讨论缩放后图像的长宽比。
此外,您还应该阅读Image.getScaledInstance()的风险,并查看将ImageIcon自动缩放为标签大小演示了这样做的问题一步一步的规模…