Java GUI图像大小

时间:2015-03-10 15:48:00

标签: java image layout-manager java-2d

所以我有一个我需要创建目录的任务。 目录需要有一个列表,一个图像和一个描述。 我的整个代码都有效,所以我对编码没有任何问题。

我的图像尺寸确实存在问题。 如何处理java gui程序中的图像,使它们在运行时全部变成一个大小。 请让我知道:D

3 个答案:

答案 0 :(得分:1)

当您在图像中读取时,创建一个与您想要的大小完全相同的新BufferedImage,通过getGraphics()获取它的Graphics对象,使用Graphics#drawImage(Image img, int x, int y, int width, int height, ImageObserver observer)将原始图像绘制到新图像中,其中x和y为0,宽度和高度来自Graphics对象的新图像dispose()的尺寸,然后在JLabel中将新图像显示为ImageIcon。确保原始图像的尺寸与新图像的尺寸相同或更大,否则您的图像看起来会很糟糕。

例如,请注意,由于我没有启动IDE,因此此代码可能不完全正确:

BufferedImage originalImage = ImageIO.read(something); // read in original image

// create new empty image of desired size
BufferedImage newImage = new BufferedImage(desiredWidth, desiredHeight, BufferedImage.TYPE_INT_ARGB);
Graphics g = newImage.getGraphics();  // get its graphics object

// draw old image into new image
g.drawImage(originalImage, 0, 0, desiredWidth, desiredHeight, null);
g.dispose();  // get rid of Graphics object

// create ImageIcon and put in JLabel to display
Icon newIcon = new ImageIcon(newImage);
myJLabel.setIcon(newIcon);

答案 1 :(得分:0)

我可能会创建一个JPanel来绘制一个Image,然后使用该方法:

myPanel.setSize(new Dimension(x,y)) 

myPanel.setPreferredSize(new Dimension....)

答案 2 :(得分:0)

awt.Image类中有一个方法(image = imgobj.getScaledInstance(width, height, hints))非常好地提供了重新调整大小的功能,我总是在需要时使用它来重新调整图像大小。请参阅here一些例子:-),我希望它对你有用,这是我见过的最方便的图像缩放方式。创建一个方法将图像传递给您想要的图像的方法和大小,并返回图像以返回重用代码;)