Java 为什么';我的代码不能用于CardLayout吗?不管我做什么,它只是显示一个空白的JFrame

Java 为什么';我的代码不能用于CardLayout吗?不管我做什么,它只是显示一个空白的JFrame,java,swing,cardlayout,Java,Swing,Cardlayout,不管我做什么,我都不能让JFrame显示任何东西。它只是一片空白。我在JPanel游戏中添加了buttons starter和tutorialer,并将JPanel添加到我设置为cardLayout的JPanel卡中 import javax.swing.*; import java.awt.*; import java.awt.event.*; public class layouter extends JFrame { public static void main (String[

不管我做什么,我都不能让JFrame显示任何东西。它只是一片空白。我在JPanel游戏中添加了buttons starter和tutorialer,并将JPanel添加到我设置为cardLayout的JPanel卡中

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class layouter extends JFrame {
    public static void main (String[]args){
        layouter x = new layouter();
    }
    public layouter(){
        setSize(600,600);
        setDefaultCloseOperation(DISPOSE_ON_CLOSE);
        Pan p = new Pan();
        setContentPane(p);
        setVisible(true);

    }
}

class Pan extends JPanel{
    JButton starter;
    JButton tutorialer;
    JPanel start;
    JPanel tutorial;
    JPanel game;
    JPanel cards;
   CardLayout cl;
        Pan(){  
        starter = new JButton("start");
        tutorialer = new JButton("tutorial");
        start = new JPanel();
        tutorial = new JPanel();
        game = new JPanel();
        cards = new JPanel( new CardLayout());
        cl= (CardLayout)(cards.getLayout());
        game.setLayout(null);
        starter.setBounds(150,150,100,50);
        tutorialer.setBounds(150,200,100,50);
         game.add(starter);
        game.add(tutorialer);
        cards.add(game,"game");
        add(cards);
    repaint();
  }

public void paintComponent(Graphics g){
    super.paintComponent(g);
    cl.show(cards,"game");
    System.out.println("hello");
}

}游戏设置布局(空)这个
cl.show(纸牌,“游戏”)
paintComponent
方法中是一个坏主意,您不应该从任何paint方法中修改任何组件的状态谢谢!,这似乎奏效了!但为什么空布局不起作用呢。我使用了.setBounds,对吗?布局管理器不仅仅是布局组件,它们还向父容器提供容器本身所需空间量的信息(基于其内容)
cl.show(cards, "game");