我想用Java制作简单的相册。要做到这一点,我认为这将是使用网格布局协调图片的最简单方法。
我有图片的缓冲图像,我正在尝试使用以下代码将它们添加到网格布局中,
BufferedImage a = GUI.createImage(current);
Image b = Toolkit.getDefaultToolkit().createImage(a.getSource());
Icon pic = new ImageIcon(b);
JButton picB = new JButton("Picture 1", pic );
selectB.setVerticalTextPosition(AbstractButton.BOTTOM);
selectB.setHorizontalTextPosition(AbstractButton.CENTER); //aka LEFT, for left-to-right locales
add(picB);
我还尝试使用以下代码缩小我的缓冲图像,
int w = a.getWidth();
int h = a.getHeight();
BufferedImage after = new BufferedImage(w, h, BufferedImage.TYPE_INT_ARGB);
AffineTransform at = new AffineTransform();
at.scale(0.6, 0.6);
AffineTransformOp scaleOp = new AffineTransformOp(at, AffineTransformOp.TYPE_BILINEAR);
after = scaleOp.filter(a, after);
不过,我还是把图片缩小了,按钮比图片大,无法整理图片。
您有什么建议或新的解决方案吗?
谢谢。
最佳答案
picB.setInsets(new Insets(1, 1, 1, 1));
BufferedImage 也是一个图像,因此似乎不需要 b
。
BufferedImage 关联了 Graphics,因此可以按如下方式调整大小:
BufferedImage scaled = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB);
scaled.getGraphics().drawImage(original, 0, 0, width, height, null);
关于使用 GridLayout 的 Java 相册,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8695190/