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である2番目のパラメータがあると思います。

于 2012-08-03T02:46:22.500 に答える