JFrame不显示按钮或背景颜色

ssj*_*878 1 java swing jpanel jframe

JFrame没有显示构造函数中设置的按钮或背景颜色.我启动程序时只得到一个空白框.不确定代码有什么问题.

//imports
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;;

public class StartingTheCode{

    JButton CalculateButton;
    JTextField Ans;
    JPanel p;
    JFrame f;

    public static void main (String[] args){
        new StartingTheCode();
    }

    //constructor
    StartingTheCode(){
        f = new JFrame("test");
        f.setVisible(true);
        f.setSize(600,600);
        f.setLocationRelativeTo(null);
        f.setResizable(false);
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        p = new JPanel();
        p.setBackground(Color.BLUE); // not displaying blue background

        CalculateButton = new JButton("+"); // should display button
        CalculateButton.setSize(30,30);
        CalculateButton.setLocation(5,5);
    }
}
Run Code Online (Sandbox Code Playgroud)

Hov*_*els 5

你没有将你的按钮或你的JPanel添加到任何东西,所以没有JFrame神奇地显示它们.

您应该通过其add(...)方法将JButton添加到JPanel ,然后通过其方法将JPanel添加到JFrame add(...),并设置JFrame可见之前执行此操作.

最重要的是,你应该阅读Swing教程,因为我从经验中说出你会说你没有 - 只是猜测这些东西.这一点都很好地解释了.

顺便说一句,避免设置任何组件的大小,而是阅读有关布局管理器使用的教程部分,因为它将允许您大大简化和授权您的代码.