Java JFrame不显示按钮或背景色

Java JFrame不显示按钮或背景色,java,swing,jframe,jpanel,Java,Swing,Jframe,Jpanel,MyJFrame未显示构造函数中设置的按钮或背景色。当我启动程序时,我只得到一个空白框。不确定代码有什么问题 //imports import javax.swing.*; import java.awt.*; import java.awt.event.*;; public class StartingTheCode{ JButton CalculateButton; JTextField Ans; JPanel p; JFrame f; publ

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

您没有将按钮或JPanel添加到任何内容,因此没有JFrame会神奇地显示它们

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

最重要的是,你应该读这本书,因为我是根据经验说的,你不可能仅仅猜测这些东西。这些都在那里得到了很好的解释


另一方面,避免设置任何组件的大小,而是阅读有关使用布局管理器的教程部分,因为这将使您的代码大大简化和增强。

您没有向任何内容添加按钮或JPanel,因此没有JFrame会神奇地显示它们

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

最重要的是,你应该读这本书,因为我是根据经验说的,你不可能仅仅猜测这些东西。这些都在那里得到了很好的解释


另一方面,避免设置任何组件的大小,而是阅读有关使用布局管理器的教程部分,因为这将使您的代码大大简化和增强。

您需要使用
p.add(calculateButton)
将calculateButton添加到JPanel中,并使用
f.add(p)将面板添加到框架中

您需要使用
p.add(calculateButton)
将您的calculateButton添加到JPanel中,并使用
f.add(p)