如何将JPanel扩展类添加到JFrame扩展类的组件中。

问题描述 投票:0回答:1

我基本上是想创建一个可以在面板之间切换的显示器(有不同的设计)。我知道适合在面板之间切换的布局是CardLayout,所以我创建了一个扩展JPanel的Lienzo类,并将其布局设置为 CardLayout,然后初始化多个面板,并将其添加到Lienzo构造函数内部的甲板上。关于 JFrame 扩展类,它的名字叫VentanaDesarrollo,在它的构造函数里面,我创建了一个新的Lienzo,并试图把它添加到框架中,但当我运行项目时,它是全部空白的,并没有按照计划显示出甲板的第一个面板。如果说Lienzo和VentanaDesarrollo是在Netbeans选项右击包>新建>JPanelJFrame形式后创建的,可能会有帮助。

这是Lienzo类,它的构造函数运行initComponents(),创建子面板并将它们添加到卡组中。

public class Lienzo extends JPanel {
    ArrayList<EfectoDeSonido> efectos;
    Mary mary;
    Katherin katherin;
    Inicio inicio;
    Ayuda ayuda;
    Configuracion config;
    Seleccion selec;
    Dorothy dorothy;

    public Lienzo() {
        initComponents();
    }

    /**
     * This method is called from within the constructor to initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is always
     * regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
    private void initComponents() {

        Inicio = new javax.swing.JPanel();
        jButton1 = new javax.swing.JButton();
        Ayuda = new javax.swing.JPanel();
        Configuracion = new javax.swing.JPanel();
        Seleccion = new javax.swing.JPanel();
        HistoriaKatherin = new javax.swing.JPanel();
        HistoriaMary = new javax.swing.JPanel();
        HistoriaDorothy = new javax.swing.JPanel();

        setMaximumSize(new java.awt.Dimension(1400, 800));
        setMinimumSize(new java.awt.Dimension(1400, 800));
        setLayout(new java.awt.CardLayout());

        jButton1.setText("jButton1");

        javax.swing.GroupLayout InicioLayout = new javax.swing.GroupLayout(Inicio);
        Inicio.setLayout(InicioLayout);
        InicioLayout.setHorizontalGroup(
            InicioLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(InicioLayout.createSequentialGroup()
                .addGap(605, 605, 605)
                .addComponent(jButton1)
                .addContainerGap(716, Short.MAX_VALUE))
        );

        InicioLayout.setVerticalGroup(
            InicioLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(InicioLayout.createSequentialGroup()
                .addGap(315, 315, 315)
                .addComponent(jButton1)
                .addContainerGap(460, Short.MAX_VALUE))
        );

        add(Inicio, "INICIO");

        javax.swing.GroupLayout AyudaLayout = new javax.swing.GroupLayout(Ayuda);
        Ayuda.setLayout(AyudaLayout);
        AyudaLayout.setHorizontalGroup(
            AyudaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGap(0, 1400, Short.MAX_VALUE)
        );

        AyudaLayout.setVerticalGroup(
            AyudaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGap(0, 800, Short.MAX_VALUE)
        );

        add(Ayuda, "AYUDA");

        javax.swing.GroupLayout ConfiguracionLayout = new javax.swing.GroupLayout(Configuracion);
        Configuracion.setLayout(ConfiguracionLayout);
        ConfiguracionLayout.setHorizontalGroup(
            ConfiguracionLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 1400, Short.MAX_VALUE)
        );
        ConfiguracionLayout.setVerticalGroup(
            ConfiguracionLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 800, Short.MAX_VALUE)
        );

        add(Configuracion, "CONFIG");

        javax.swing.GroupLayout SeleccionLayout = new javax.swing.GroupLayout(Seleccion);
        Seleccion.setLayout(SeleccionLayout);
        SeleccionLayout.setHorizontalGroup(
            SeleccionLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 1400, Short.MAX_VALUE)
        );
        SeleccionLayout.setVerticalGroup(
            SeleccionLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 800, Short.MAX_VALUE)
        );

        add(Seleccion, "SELECCION");

        javax.swing.GroupLayout HistoriaKatherinLayout = new javax.swing.GroupLayout(HistoriaKatherin);
        HistoriaKatherin.setLayout(HistoriaKatherinLayout);
        HistoriaKatherinLayout.setHorizontalGroup(
            HistoriaKatherinLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 1400, Short.MAX_VALUE)
        );
        HistoriaKatherinLayout.setVerticalGroup(
            HistoriaKatherinLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 800, Short.MAX_VALUE)
        );

        add(HistoriaKatherin, "HISK");

        javax.swing.GroupLayout HistoriaMaryLayout = new javax.swing.GroupLayout(HistoriaMary);
        HistoriaMary.setLayout(HistoriaMaryLayout);
        HistoriaMaryLayout.setHorizontalGroup(
            HistoriaMaryLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 1400, Short.MAX_VALUE)
        );
        HistoriaMaryLayout.setVerticalGroup(
            HistoriaMaryLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 800, Short.MAX_VALUE)
        );

        add(HistoriaMary, "HISM");

        javax.swing.GroupLayout HistoriaDorothyLayout = new javax.swing.GroupLayout(HistoriaDorothy);
        HistoriaDorothy.setLayout(HistoriaDorothyLayout);
        HistoriaDorothyLayout.setHorizontalGroup(
            HistoriaDorothyLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 1400, Short.MAX_VALUE)
        );
        HistoriaDorothyLayout.setVerticalGroup(
            HistoriaDorothyLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 800, Short.MAX_VALUE)
        );

        add(HistoriaDorothy, "HISD");
    }// </editor-fold>

    // Variables declaration - do not modify                     
    private javax.swing.JPanel Ayuda;
    private javax.swing.JPanel Configuracion;
    private javax.swing.JPanel HistoriaDorothy;
    private javax.swing.JPanel HistoriaKatherin;
    private javax.swing.JPanel HistoriaMary;
    private javax.swing.JPanel Inicio;
    private javax.swing.JPanel Seleccion;
    private javax.swing.JButton jButton1;
    // End of variables declaration
}

另一个是VentanaDesarrollo类 Lienzo被创建并 "添加 "到框架中,但它没有出现,没有显示任何东西。

public class VentanaDesarrollo extends javax.swing.JFrame {

    Lienzo lienzo;
    EstadoJuego estado;
    public VentanaDesarrollo() {
        initComponents();
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setTitle("Estellar G: Beta");
        setLocationRelativeTo(null);
        lienzo = new Lienzo ();
        add(lienzo);
        revalidate();
        repaint();
        setVisible(true);
    }

    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
    private void initComponents() {

    setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        setMaximumSize(new java.awt.Dimension(1400, 800));
        setMinimumSize(new java.awt.Dimension(1400, 800));
        setResizable(false);

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 577, Short.MAX_VALUE)
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 550, Short.MAX_VALUE)
        );

        pack();
    }// </editor-fold>                        


    // Variables declaration - do not modify                     
    // End of variables declaration                   
}

我真的不知道问题出在哪里,由于我根本不是编程高手,我几乎可以肯定这可能是一些逻辑错误。

java jpanel cardlayout
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.