gpt4 book ai didi

java - 奇怪的 setBackground() 错误 - Java Swing

转载 作者:行者123 更新时间:2023-12-02 06:06:14 24 4
gpt4 key购买 nike

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);
}
}

当我执行此操作时,我得到的只是“这是一个句子”字符串中的一个微小的蓝色方形嵌套。我已经尝试了一切!

最佳答案

您需要将框架的布局设置为尊重其子项的首选尺寸的布局。 FlowLayout 确实如此,并且您的 JPanel 没有添加任何组件或指定首选尺寸的首选尺寸。

一个简单的修复,将框架的布局设置为 BorderLayout,或者根本不设置布局,因为 JFrame 已经有一个默认的 BorderLayout.但请注意,您可能希望将 JLabel 添加到 JPanel 而不是 JFrame。除非您确实想要将其添加到JFrame而不是背景JPanel,否则您需要指定BorderLayout位置对于您不希望位于中心的那个。

您可以看到this answer查看哪些布局管理器尊重首选尺寸,哪些不尊重首选尺寸

查看更多信息 Layout out Components Withing a Container

此外,setVisible(true) 应该是添加所有组件后最后做的事情。

关于java - 奇怪的 setBackground() 错误 - Java Swing,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22269371/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com