使用 GridLayout 的 Java 相册

标签 java swing positioning bufferedimage grid-layout

我想用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/

相关文章:

java - eclipse 找不到主类

java - JAAS 身份验证在 JBoss AS 7 上失败

css - 不满意的外观

javascript - 如何让 div 粘在另一个元素上

java - 有没有办法将监听器添加到执行者/ future 的?

java - 如何在不使用 java 中的随机类的情况下随机生成 1 到 1000 之间的数字?

java - 自定义 Swing 布局

java - 输入文本只接受数字

java - 设置 Action 监听器并更改背景

html - 右跨度定位(高分辨率)