Как разделить панель на 2 панели с помощью cardLayout? - PullRequest
0 голосов
/ 01 мая 2019

Я попытался разделить большую панель на 2 панели и отобразить их в большой панели, но это не сработало. Однако, когда я играл в программе, она просто показывала последнюю панель, даже если для 2 панелей установлено значение разные места.

public class PaperScissorRock extends JFrame implements Runnable {


ImageIcon[] gameIcons= {new ImageIcon("C:\\Jsp\\HelloJava\\src\\Images\\r.png"),new ImageIcon("C:\\Jsp\\HelloJava\\src\\Images\\s.png"),new ImageIcon("C:\\Jsp\\HelloJava\\src\\Images\\p.png")};
JLabel me=new JLabel("Me");
JLabel com=new JLabel("Computer");
JButton[] jb=new JButton[3];//
CardLayout psrLayout=new CardLayout();/


PaperScissorRock()
{


    JPanel bigPanel=new JPanel(psrLayout);//A panel to include 2 panels(northP/southP)
    JPanel northP=new JPanel();
    northP.setLayout(null);
    northP.setBackground(Color.YELLOW);
    northP.setBounds(400, 150, 400, 50);//
    for(int i=0; i<3; i++)
    {
        jb[i]=new JButton(gameIcons[i]);
        jb[i].setSize(10, 10);
        northP.add(jb[i], BorderLayout.NORTH);
    }


    JPanel southP=new JPanel();
    southP.setLayout(null);
    southP.setLayout(new FlowLayout());
    southP.setBackground(Color.GRAY);
    southP.setBounds(400, 100, 400, 100);
    southP.add(me, BorderLayout.SOUTH);southP.add(com, BorderLayout.SOUTH);

    bigPanel.setBounds(400, 150, 400, 450);
    bigPanel.add(northP, "nbp");bigPanel.add(southP, "sbp");
    psrLayout.show(bigPanel, "nbp");//this is not called(?)
    psrLayout.show(bigPanel, "sbp");


    Game.Gframe.add(bigPanel);



}

В bigPanel я хочу отображать две панели (northP / southP) одновременно.

...