Java 在JPanel中插入JLabel不会';不要把它放在上面

Java 在JPanel中插入JLabel不会';不要把它放在上面,java,swing,jpanel,jlabel,Java,Swing,Jpanel,Jlabel,我试图在JPanel元素中插入一个包含图像的JLabel。结果有点令人惊讶,因为图像(即JLabel)并没有直接放在JPanel的顶部,但前面有一条空行 有没有办法把它改为(0,0)而不是(0,1) 这是我的密码: Image i; // une image donnée JFrame f = new JFrame(); f.setTitle("test"); f.setSize(i.getWidth(null), i.getHeight(null)); f.setLocationRelati

我试图在JPanel元素中插入一个包含图像的JLabel。结果有点令人惊讶,因为图像(即JLabel)并没有直接放在JPanel的顶部,但前面有一条空行

有没有办法把它改为(0,0)而不是(0,1)

这是我的密码:

Image i; // une image donnée

JFrame f = new JFrame();
f.setTitle("test");
f.setSize(i.getWidth(null), i.getHeight(null));
f.setLocationRelativeTo(null);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

f.setResizable(false);
f.setAlwaysOnTop(false);
f.setUndecorated(false);

JPanel pan = new JPanel();

JLabel l = new JLabel(new ImageIcon(i));
pan.add(l);

f.setContentPane(pan);     
f.setVisible(true);
(更新后的帖子) 尝试使用
f.add(pan)
而不是
f.setContentPane(pan)

(旧职位) 我想你是想把它添加到小组中:

JLabel l = new JLabel(new ImageIcon(i));
pan.add(l);

是的,你是对的,我改了。但这只是一个复制问题,这不是错误的原因。你知道“空行”的事情会发生在哪里吗?谢谢。我刚刚尝试用f.add替换f.setContentPane,但结果完全一样。顶部仍然有一个空行…@user2051002“空行”是什么意思?我的意思是,图像只从第二行显示,而不是整个窗口。这就是为什么首先有一条灰线(窗口中没有任何内容),然后显示图像。我只想删除这条“灰线”,并直接在顶部显示图像。谢谢。好像我希望图像显示在(0,1)上,但我没有给出任何坐标来定位它。我希望它显示在(0,0),即从左上角开始
l.setLocation(0,0)但建议使用适当的布局管理器。谢谢回答。第一条指令(setLayout)不显示图像,第二条指令(setLocation)在我看来没有任何变化。。。你听到我的合适的布局经理怎么说?任何你喜欢的布局经理,流程,网格。。。!第1条指令没有问题,您的编码风格/代码一定有问题!发布一些SSCCE
JLabel l = new JLabel(new ImageIcon(i));
pan.add(l);