BorderLayout.NORTH - Java Swing 中未显示 ImageLabel
ImageLabel not shown in BorderLayout.NORTH - Java Swing
所以,我有这个 BorderLayout 框架,它的面板 pnlLogo 在北方。在该面板中,我在标签中有一张图片。问题是:我想把它放在那个北方的左上角。但是当我 setLayout(null) 和 setbounds 时,图像根本不显示。在正常的流程布局中,它确实出现了。谁知道为什么?
package panels.components;
import java.awt.Color;
import javax.swing.*;
public class Logo extends JPanel{
// Declareren
public JLabel lblLogo;
public Logo(){
// Layout
this.setLayout(null);
this.setBackground(Color.decode("#414141"));
// Logo -> Label
ImageIcon image = new ImageIcon("src/media/Logo.jpg");
lblLogo = new JLabel("", image, JLabel.CENTER);
// Bounds
lblLogo.setBounds(10, 10, 210, 84);
// Panel
this.add(lblLogo);
}
}
您为什么不想为面板使用布局?
如果您不希望图像填满整个框架,您可以使用
this.setPreferredSize(new Dimension(600, 80));
确保在使用它时不使用绝对布局 (setLayout(null))。
这是一个有用的方面:click!
所以,我有这个 BorderLayout 框架,它的面板 pnlLogo 在北方。在该面板中,我在标签中有一张图片。问题是:我想把它放在那个北方的左上角。但是当我 setLayout(null) 和 setbounds 时,图像根本不显示。在正常的流程布局中,它确实出现了。谁知道为什么?
package panels.components;
import java.awt.Color;
import javax.swing.*;
public class Logo extends JPanel{
// Declareren
public JLabel lblLogo;
public Logo(){
// Layout
this.setLayout(null);
this.setBackground(Color.decode("#414141"));
// Logo -> Label
ImageIcon image = new ImageIcon("src/media/Logo.jpg");
lblLogo = new JLabel("", image, JLabel.CENTER);
// Bounds
lblLogo.setBounds(10, 10, 210, 84);
// Panel
this.add(lblLogo);
}
}
您为什么不想为面板使用布局? 如果您不希望图像填满整个框架,您可以使用
this.setPreferredSize(new Dimension(600, 80));
确保在使用它时不使用绝对布局 (setLayout(null))。 这是一个有用的方面:click!