Пожалуйста, укажите свой метод размещения и изменения размера `JPanel`s в рамке - PullRequest
0 голосов
/ 08 марта 2019

Практика выравнивания панелей

Практика выравнивания панелей. Каждая панель - это цвет. Я не смог изменить размер с помощью new Dimension() или гибко манипулировать панелями. Я пробовал frm.setLayout(null) с setBounds() и GridBagConstraints.

   frm = new JFrame();

   frmLayout = new BorderLayout();
   frmLayout.layoutContainer(frm.getContentPane());


   mainPnl = new MainPanel();
   sP = new SecondPanel();
   tP = new ThirdPanel();

   getContentPane().add(mainPnl, BorderLayout.WEST);
   getContentPane().add(sP, BorderLayout.EAST);
   getContentPane().add(tP, BorderLayout.SOUTH);

Ответы [ 2 ]

0 голосов
/ 09 марта 2019

Мне удалось расположить панели.

Кажется, если я добавлю панели к главной панели setBounds() работает.Я, наверное, нарушаю все ваши любимые свинговые соглашения, но в какой-то момент я научусь так же, как и вы все.Пока проблема только с setBounds() - изменение размера окна.getWidth() или getHeight() вызывает исчезновение панели.

public class MainPanel extends JPanel {

SecondPanel sP;
ThirdPanel tP;
FourthPanel fP;

public MainPanel()
{

  setBackground(Color.ORANGE);
  setLayout(null);
  sP = new SecondPanel();
  sP.setBounds(0, 0, 90, 90);
  tP = new ThirdPanel();
  tP.setBounds(90, 0, 410, 90);
  fP = new FourthPanel();
  fP.setBounds(0, 400, 500, 100);

  add(sP);
  add(tP);
  add(fP);

}

}

0 голосов
/ 08 марта 2019

Чтобы изменить LayoutManager для JPanel, используйте:

frm.getContentPane().setLayout(frmLayout);

Не устанавливайте его в нуль, размер макета не будет изменен с помощью JFrame.

...