Java 无法在JFrame上看到JPanel

Java 无法在JFrame上看到JPanel,java,swing,Java,Swing,我试图在JFrame上添加一个JPanel,但是我看不到面板。我还试图添加一个JTable到面板中,但在我可以让它工作之后。这是我的密码: import java.awt.BorderLayout; import javax.swing.*; import javax.swing.table.*; public class table { public table(){ JFrame frame = new JFrame(); frame.setLa

我试图在JFrame上添加一个JPanel,但是我看不到面板。我还试图添加一个JTable到面板中,但在我可以让它工作之后。这是我的密码:

import java.awt.BorderLayout;
import javax.swing.*;
import javax.swing.table.*;

public class table
{

    public table(){

        JFrame frame = new JFrame();
        frame.setLayout(new BorderLayout());
        frame.setSize(500,300);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        JPanel panel = new JPanel();
        frame.add(panel, BorderLayout.CENTER);
        frame.setVisible(true);

    }
}
在另一个类中,我有以下代码:

public class Main {

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

}
这里是JFrame的屏幕截图,没有JPanel(我想)。

如果您查看文档,您可能会注意到关于输入参数的注释

窗口将在可见之前进行验证

是将新组件添加到窗口时使其显示的关键。您有两个选择:

  • 将所有内容添加到窗口后,将对
    setVisible
    的调用移动到代码末尾:

    JFrame frame = new JFrame(); frame.setLayout(new BorderLayout()); frame.setSize(500,300); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JPanel panel = new JPanel(); frame.add(panel, BorderLayout.CENTER); frame.setVisible(true);
    不要忘记导入java.awt.Color在这种情况下。

    尝试为面板提供背景色:

    panel.setBackground(Color.BLUE);
    

    移动
    frame.setVisible(真)到结尾。要么这样,要么在说了所有的话和做了所有的事之后重新验证它。在结尾添加那一行对我不起作用。为了更快地获得更好的帮助,请发布一个或。@MadPhysicast的建议应该是我和其他许多人提供的,基于上面看到的不可编译的代码片段。如果它不起作用,我们将需要查看其他情况,以便能够理解错误。请正确缩进代码。谢谢,但它似乎对我仍然不起作用-我尝试了验证和将setVisible移动到末尾。第二部分不必与边框布局一起使用。啊,是的,你是对的。我已经有一段时间没有和Swing合作了。谢谢你指出这一点
    JFrame frame = new JFrame();
    frame.setLayout(new BorderLayout());
    frame.setSize(500,300);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    JPanel panel = new JPanel();
    panel.setBackground(Color.RED);
    frame.add(panel, BorderLayout.CENTER);
    frame.setVisible(true);
    
    panel.setBackground(Color.BLUE);