Как добавить несколько экземпляров идентичных JPanels - PullRequest
0 голосов
/ 28 декабря 2018

Я хочу добавить в один и тот же фрейм несколько экземпляров одного и того же компонента, который расширяет 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 голосов
/ 28 декабря 2018

Я думаю, что вы добавляете jpanels в том же месте, поэтому вы видите последний.Попробуйте установить 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);
...