2

所以我有一个图像:

ImageIcon i = new ImageIcon("foo.png");
JLabel j = new JLabel(i);

我有一个 600 X 600 的 JFrame。

frame.setSize(600, 600);
frame.setLayout(null);

我想让图像的底部接触框架的底部,所以我认为这会起作用:

j.setBounds(250, 600 - i.getIconHeight(), i.getIconWidth(), i.getIconHeight());

但是图像从框架的底部伸出,并没有全部显示出来。图像的底部位于框架下方。

编辑:我需要为此应用程序(游戏)使用绝对定位。

EDIT2:这是供参考的代码:

import javax.swing.*;

public class Test extends JFrame {

    public static void main(String[] args) {
        new Test();
    }

    private Test() {
        setSize(600, 600);
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        setLayout(null);

        ImageIcon i = new ImageIcon("foo.png");
        JLabel j = new JLabel(i);
        add(j);
        j.setBounds(250, 600 - i.getIconHeight(), i.getIconWidth(), i.getIconHeight());

        setVisible(true);
    }
}
4

1 回答 1

3

虽然我更喜欢为此使用布局管理器,只是为了回答您的问题, setBounds() 的参数是

x-coordinate, y-coordinate, width and height

你的想法是正确的,你必须调整框架的大小,但我认为你需要调整的是第二个参数,它是 y 而不是图像图标的高度

于 2012-08-03T02:46:22.500 回答