![](/img/trans.png)
[英]Error in using setBackground( new Color(0,0,0,0)) in Swing
[英]Strange setBackground() error - Java Swing
import java.awt.*;
import javax.swing.*;
public class JFrameGUI extends JFrame
{
JLabel item1;
public JFrameGUI(int l, int b , String Title)
{
setTitle(Title);
setLayout(new FlowLayout());
setSize(l, b);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
item1 = new JLabel("This is a Sentence.");
item1.setToolTipText("This is gonna show up on hover.");
add(item1);
}
public static void main(String[] args)
{
JFrameGUI g = new JFrameGUI(1280,720,"The End Of The Line");
JPanel p = new JPanel();
p.setBackground(Color.BLUE);
g.add(p);
}
}
当我执行此操作时,我得到的是一个小的蓝色方形嵌套到“这是一个句子”字符串。 我已经尝试了一切!
您需要将框架的布局设置为doesn't
其子项的首选大小的布局。 FlowLayout
可以,并且您的JPanel
没有首选大小而没有添加任何组件,或指定首选大小。
一个简单的修复,将框架的布局设置为BorderLayout
,或者根本不设置布局,因为JFrame
已经有一个默认的BorderLayout
。 请注意,您可能希望将JLabel
添加到JPanel
而不是JFrame
。 除非你想将其添加到JFrame
,而不是背景JPanel
,你需要指定一个BorderLayout
你不想在中心的一个位置。
您可以看到此答案,以查看哪些布局管理器尊重首选大小,哪些不符合
有关容器的布局输出组件,请参阅更多信息
此外, setVisible(true)
应该是添加所有组件后 最后做的事情。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.