Использовать вложенный макет. Каждая из желтых и синих панелей имеет свой собственный макет, а затем помещается в ограничения большего макета.
import java.awt.*;
import javax.swing.*;
public class Interface extends JFrame{
public Interface ()
{
//frame
super("Panel");
//declaration container
Container c;
c=getContentPane();
c.setLayout(new BorderLayout());
c.setBackground(Color.white);
//declaration des panel avec leurs caracteristiques
JPanel menu =new JPanel(new GridLayout(0,1,3,3));
JPanel messageList =new JPanel(new FlowLayout());
JPanel about=new JPanel(new FlowLayout());
menu.setBackground(Color.blue);
messageList.setBackground(Color.cyan);
messageList.add(new JLabel("'messageList' padder"));
about.setBackground(Color.green);
about.add(new JLabel("'about' padder"));
JPanel menuConstrain = new JPanel(new BorderLayout());
menuConstrain.setBackground(Color.yellow);
menuConstrain.add(menu,BorderLayout.NORTH);
c.add(menuConstrain,BorderLayout.WEST);
c.add(messageList,BorderLayout.EAST);
c.add(about,BorderLayout.SOUTH);
//--------Button---------------------
JButton button1=new JButton("button1");
JButton button2=new JButton("Button2");
menu.add(button1);
menu.add(button2);
//-----------------------------
pack();
setSize(300,150);
setVisible(true);
}
public static void main(String args[])
{
Interface Message=new Interface();
Message.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
Более подробный пример использования вложенных макетов см. NestedLayoutExample.java
.
Кстати - это какой-то запутанный код!
- Иногда он использует общую номенклатуру «верблюжьих коров», но не другие.
- Существует конкретный класс с именем
Interface
.
- Существует панель с именем
menu
.
- На экране появляется рамка с названием
Panel
.
- Попробуйте добавить комментарии на эфиопском в следующий раз. Я читаю это примерно так же, как и на французском.
- Все это в сочетании с несовместимым отступом приводит к коду, который трудно читать и понимать.
Это форма запутывания бедного человека?
Обратите внимание, что графический интерфейс Swing должен быть создан в EDT.