簡體   English   中英

為什么我的代碼對CardLayout不起作用? 不管我做什么,它只會顯示一個空白的JFrame

[英]Why doesn't my code work for CardLayout? Not matter what I do, it just shows a blank JFrame

無論我做什么,我都無法讓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

使用適當的布局管理器。 有關更多詳細信息,請參見在容器中布置組件

如果您向games添加了更多容器,則可能需要“顯示”要首先顯示的默認視圖

cl.show(cards, "game");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM