So I am creating a GUI for a small game I'm making as a capstone. I have 4 JPanels I am trying to position on one frame using GridBagLayout.
It currently looks like this: Current GUI Logic Error
But I'd like it to be more similar in design to this: Sorry for Bad Paint Skills
Code for the frame:
public OverlordFrame()
{
buttonPanel = new ButtonPanel();
invPanel = new InventoryPanel();
statPanel = new PlayerStatsPanel(invPanel);
monstPanel = new MonsterPanel();
this.setLayout(new GridBagLayout());
GridBagConstraints c = new GridBagConstraints();
c.ipadx = 10;
c.ipady = 50;
c.gridx = 0;
c.gridy = 0;
c.weightx = .1;
c.weighty = .4;
c.gridheight = 2;
c.fill = GridBagConstraints.VERTICAL;
c.anchor = GridBagConstraints.LINE_START;
this.add(invPanel, c);
c.gridx = 1;
c.gridy = 1;
c.weightx = .4;
c.weighty = .3;
c.gridwidth = 2;
c.gridheight = 0;
c.fill = GridBagConstraints.NONE;
c.anchor = GridBagConstraints.CENTER;
this.add(buttonPanel, c);
c.gridx = 2;
c.gridy = 0;
c.weightx = .1;
c.weighty = .4;
c.gridwidth = 0;
c.anchor = GridBagConstraints.LINE_END;
this.add(statPanel, c);
c.gridx = 1;
c.weightx = .4;
c.weighty = .4;
c.anchor = GridBagConstraints.CENTER;
this.add(monstPanel, c);
this.setSize(1440, 810);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
Note: The white space on the left is InventoryPanel, that is kind of in the right place, the ButtonPanel, which is the 6 buttons, should go as they are in the bad paint picture, the white area behind the buttons with the 4 buttons below should go where monster is, and the JLabels on the right should be in the top right corner. Thanks for any help
See Question&Answers more detail:os