По какой-то причине макет границы в моем коде не работает, когда я запускаю программу, два JPanel
компонента выглядят как это , когда я хочу, чтобы два белых квадрата были вверху рядом с друг с другом.
В настоящее время я создаю программу, в которой я добавлю 9 квадратов (панелей), а затем помещу в них изображения, так что это 3 на 3 рядом с моей панелью кнопок. Однако я только начал с двух квадратов и даже не могу их правильно расположить, они зафиксированы в центре, и когда я добавляю еще один JPanel
, он автоматически идет рядом с двумя, которые я уже положил в центр ,
Я доволен тем, где находится моя панель кнопок, но я хочу, чтобы мои две другие панели располагались вверху рядом друг с другом, чтобы я мог продолжать строить свою программу.
Как создать требуемый макет и выравнивание панелей изображений?
ГЛАВНЫЙ КЛАСС
public static void main(String[] args) {
JFrame application = new JFrame ("Call of Traders");
GUI graphicalInterface = new GUI();
application.add(graphicalInterface);
application.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
application.setLocation(200,200);
application.pack();
application.setVisible(true);
application.setResizable(false);
}
}
ПОДКЛАСС
public class GUI extends JPanel implements ActionListener {
private JButton AddChairBTN = new JButton();
private JButton AddTableBTN = new JButton();
private JButton AddDeskBTN = new JButton();
private JButton NewCalcBTN = new JButton();
private JPanel buttonPanel;
private JPanel imagePanel;
private JPanel imagePanel2;
private Chair customerChair = new Chair();
private Table customerTable = new Table();
private Desk customerDesk = new Desk();
GUI() {
//create button panel
buttonPanel = new JPanel();
buttonPanel.setPreferredSize(new Dimension(100, 300));
buttonPanel.setOpaque(true);
buttonPanel.setBackground(Color.white);
imagePanel = new JPanel(new BorderLayout());
imagePanel.setPreferredSize(new Dimension(100, 100));
imagePanel.setOpaque(true);
imagePanel.setBackground(Color.white);
imagePanel2 = new JPanel(new BorderLayout());
imagePanel2.setPreferredSize(new Dimension(100, 100));
imagePanel2.setOpaque(true);
imagePanel2.setBackground(Color.white);
AddChairBTN = new JButton();
//add action listener to each button
AddChairBTN.addActionListener(this);
//set button size
AddChairBTN.setPreferredSize(new Dimension(100, 50));
//set text for each button
AddChairBTN.setText("Add Chair");
AddChairBTN.setToolTipText("press to add a Chair");
//add buttons to gui
buttonPanel.add(AddChairBTN);
AddTableBTN = new JButton();
//add action listener to each button
AddTableBTN.addActionListener(this);
//set button size
AddTableBTN.setPreferredSize(new Dimension(100, 50));
//set text for each button
AddTableBTN.setText("Add Table");
AddTableBTN.setToolTipText("press to add a Table");
//add buttons to gui
buttonPanel.add(AddTableBTN);
AddDeskBTN = new JButton();
//add action listener to each button
AddDeskBTN.addActionListener(this);
//set button size
AddDeskBTN.setPreferredSize(new Dimension(100, 50));
//set text for each button
AddDeskBTN.setText("Add Desk");
AddDeskBTN.setToolTipText("press to add a Desk");
//add buttons to gui
buttonPanel.add(AddDeskBTN);
NewCalcBTN = new JButton();
//add action listener to each button
NewCalcBTN.addActionListener(this);
//set button size
NewCalcBTN.setPreferredSize(new Dimension(100, 50));
//set text for each button
NewCalcBTN.setText("Calculate");
NewCalcBTN.setToolTipText("press to find out the total");
//add buttons to gui
buttonPanel.add(NewCalcBTN);
//Add all panels to main containter panel and add that to the window
this.add(buttonPanel);
this.add(imagePanel, BorderLayout.NORTH);
this.add(imagePanel2, BorderLayout.SOUTH);
}
}