0

为什么我不能更改图标的 x 和 y 坐标?我真正需要的只是将图像添加到屏幕上。我什至需要使用 JLabel 吗?

package bit;

import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;


public class BIT extends JFrame
{
    JLabel CL;

    public BIT()
    {
        CL = new JLabel(new ImageIcon(this.getClass().getResource("final-image.jpg")));
        CL.setBounds(0,0,100,100);

        this.getContentPane().add(CL);

        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.setBounds(5,5,1000,500);
        this.setResizable(false);
        this.setVisible(true);
    }
    public static void main(String[] args) 
    {
        new BIT();
    }
}
4

2 回答 2

0

您不能使用其默认的BorderLayoutJLabel布局管理器设置 x 和 y 坐标,该管理器根据布局实现排列其组件。JFrame

setBounds仅在使用绝对定位(或null布局)时有效,应避免使用此选项(!)

您似乎正在尝试将 定位JLabel在框架的左上角 ( 0, 0)。为此,您可以:

  • 左对齐标签
  • PAGE_START位置添加标签

这将是:

CL = new JLabel(new ImageIcon(...), JLabel.LEFT);
this.getContentPane().add(CL, BorderLayout.PAGE_START);
于 2013-01-18T17:53:29.757 回答
0

在使用 setBounds 添加控件之前取消设置 JFrame 的布局

this.setLayout(null);
于 2013-01-18T06:25:45.337 回答