如何添加相同 JPanel 的多个实例

How to add multiple instances of identical JPanels

我想在同一框架上添加扩展 JPanel 的同一组件的多个实例,但不幸的是,当我编译代码时,它只在框架上添加了最后一个实例。

这是我扩展 JFrame 的主要 class:

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

public class Interface extends JFrame
{
    JPanel jPanel;
    JPanel jPanel02;
    JPanel jPanel03;

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

    public Interface( )
    {

        setTitle( "Tile" );
        setSize( 300, 300 );
        setVisible( true );

        jPanel = new MyOwnJPanel( "My Own JPanel 01" );
        jPanel02 =  new MyOwnJPanel( "My Own JPanel 02" );
        jPanel03 =  new MyOwnJPanel( "My Own JPanel 03" );


        add( jPanel );
        add( jPanel02 );
        add(jPanel03);

    }
}

这是扩展 JPanel 的 class:

import javax.swing.JLabel;
import javax.swing.JPanel;

/**
 * 
 */
public class MyOwnJPanel extends JPanel
{
    JLabel jLabel;

    MyOwnJPanel(String headerTitle){
        jLabel = new JLabel( headerTitle );
        add(jLabel );
    }

}

所以,即使我添加了所有三个面板,框架上只出现一个,最后一个。

谢谢!

我认为您是在同一位置添加 jpanel,所以您看到的是最后一个。尝试将 borderlayout 设置为 jframe。我想你会看到所有面板。

编辑:工作代码如下:

setTitle( "Tile" );
        setSize( 300, 300 );
        setVisible( true );

        setLayout(new BorderLayout());
        jPanel = new MyOwnJPanel( "My Own JPanel 01" );
        jPanel02 =  new MyOwnJPanel( "My Own JPanel 02" );
        jPanel03 =  new MyOwnJPanel( "My Own JPanel 03" );


        add( jPanel, BorderLayout.CENTER );
        add( jPanel02, BorderLayout.NORTH );
        add(jPanel03, BorderLayout.SOUTH);