为什么我不能移动JLabel Icon?

时间:2013-01-18 06:19:28

标签: java swing icons jlabel

为什么我无法更改图标的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();
    }
}

2 个答案:

答案 0 :(得分:0)

在使用setBounds

添加控件之前取消设置JFrame的布局
this.setLayout(null);

答案 1 :(得分:0)

您无法设置x& JLabel的y坐标正在JFrame使用其默认的BorderLayout布局管理器,该布局管理器根据布局实现来排列其组件。

setBounds仅在使用绝对定位(或null布局)和this option should be avoided(!)时有效。

您似乎试图将JLabel放置在框架的左上角(0, 0)。要做到这一点,你可以:

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

这将是:

CL = new JLabel(new ImageIcon(...), JLabel.LEFT);
this.getContentPane().add(CL, BorderLayout.PAGE_START);