Java 为什么我的Swing GUI没有显示添加的所有按钮?

Java 为什么我的Swing GUI没有显示添加的所有按钮?,java,swing,jframe,layout-manager,Java,Swing,Jframe,Layout Manager,有人能告诉我为什么我的JavaSwingGUI没有显示框架上添加的所有按钮吗?当我添加5个按钮时,它只显示其中的4个,如果我添加4个按钮,它只显示其中的3个 请让我知道这有什么问题 我还试图在面板上添加它们,但是GUI没有显示一个 package p2; import java.awt.Color; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; public class Gu

有人能告诉我为什么我的JavaSwingGUI没有显示框架上添加的所有按钮吗?当我添加5个按钮时,它只显示其中的4个,如果我添加4个按钮,它只显示其中的3个

请让我知道这有什么问题

我还试图在面板上添加它们,但是GUI没有显示一个

package p2;
import java.awt.Color;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class Gui extends JFrame {
    
    public Gui(){
    //Frame 
        JFrame fr=new JFrame("Calculator");
    //Panel
        JPanel p=new  JPanel();
        p.setBounds(10, 10, 200, 200);
        p.setBackground(Color.cyan);
    //Button    
        JButton b1=new JButton("Button 1");
        b1.setBounds(20, 20, 40, 30);
        JButton b2=new JButton("Button 2");
        b2.setBounds(20, 80, 40, 30);
        
        fr.add(p);
        p.add(b1);p.add(b2);
        fr.setVisible(true);
        fr.setSize(300, 400);
        fr.setLayout(null);
        
    }



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

首先:不要使用“null”布局。但当您使用任何布局时,必须在添加任何组件之前对其进行设置

要解决您的问题,只需向上移动
fr.setLayout(null)


这是因为以下几行:

fr.setLayout(null);

只要删除它,它就会工作。

代码中只有两个按钮,这就是一个例子。我的问题总是出现;所以,请在您的系统中运行它,并告诉我最近我更改了fr.setVisible(true)的位置有什么问题;到最后一段代码,现在它运行正常,这是否意味着setVisible()位置也很重要?好的,谢谢您,先生。。。现在我明白了。这是正确的答案。Java GUI必须在不同的操作系统、屏幕大小、屏幕分辨率等上工作,在不同的地区使用不同的PLAF。因此,它们不利于像素完美布局。而是使用布局管理器,或与布局填充和边框一起使用。
fr.setLayout(null);