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

时间:2018-12-28 09:26:45

标签: java jframe jpanel

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

这是我的扩展JFrame的主类:

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的类:

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

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

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

}

因此,即使我添加了所有三个面板,框架上也只显示了一个,最后一个。

谢谢!

1 个答案:

答案 0 :(得分:0)

我认为您在同一位置添加了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);