java - 为什么我的代码不适用于 CardLayout?不管我做什么,它只是显示一个空白的 JFrame

标签 java swing cardlayout

无论我做什么,我都无法让 JFrame 显示任何内容。它只是空白。我将按钮启动器和教程添加到 JPanel 游戏中,并将该 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");
}

}

最佳答案

game.setLayout(null); <-- 这会导致问题,因为添加到此容器的任何内容都将不再自动布局。默认情况下,组件的大小和位置为 0x0

使用适当的布局管理器。请参阅Laying Out Components Within a Container了解更多详情。

如果您向游戏添加更多容器,您可能需要“显示”您希望首先显示的默认 View

cl.show(cards, "game");

关于java - 为什么我的代码不适用于 CardLayout?不管我做什么,它只是显示一个空白的 JFrame,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29837180/

相关文章:

android - 在android的cardlayout中添加溢出菜单项

java - 显示 CardLayout 的上一个选项卡

java - 我的类路径在哪里设置?

java - 如何在cocos2d-android中找到 Sprite 是否与其他 Sprite 发生碰撞?

java - weblogic 上的 Jersey REST channel 返回 'null' 而不是序列化 JSON - 没有错误

java - 在 JButton OnclickListener 中编辑 JLabel 文本

java - 如何制作TextArea和列表填充面板?

java - 在java中更新HashMap

java - 如何在 Java 中找到 anchor /旋转点?

Java AWT/Swing : Get notified on change of position/size of my window