Positioneren JList en JButtons met GridBagLayout in Java
Geplaatst: 11 aug 2010, 22:41
Goeie avond,
Ik heb mijn eerste jaar toegepaste informatica-afstudeerrichting software management achter de rug. In deze opleiding heb ik enkele basisprincipes van het OOP in Java geleerd. Nu ben ik zelf in de vakantie het een en ander aan het uitzoeken rond de GUI, waar we nog niets over geleerd hebben. Na veel prutswerk heb ik gekozen voor een GridBagLayout omdat deze zeer veel mogelijkheden biedt. Hetgeen ik wil is zeer simpel: links een JList en rechts daarvan 5 knoppen onder elkaar, die samen de grootte van de JList innemen. Bij de bijlagen vindt u een screenshot ter verduidelijking. Om de een of andere reden slaag ik er niet in om dit te verwezenlijken. De knoppen zijn goed van grootte maar staan
1. aan de verkeerde kant (links ipv rechts)
en
2. slechts 1 knop staat naast de JList, en dan nog gecentreerd..
De code:
Ik heb mijn eerste jaar toegepaste informatica-afstudeerrichting software management achter de rug. In deze opleiding heb ik enkele basisprincipes van het OOP in Java geleerd. Nu ben ik zelf in de vakantie het een en ander aan het uitzoeken rond de GUI, waar we nog niets over geleerd hebben. Na veel prutswerk heb ik gekozen voor een GridBagLayout omdat deze zeer veel mogelijkheden biedt. Hetgeen ik wil is zeer simpel: links een JList en rechts daarvan 5 knoppen onder elkaar, die samen de grootte van de JList innemen. Bij de bijlagen vindt u een screenshot ter verduidelijking. Om de een of andere reden slaag ik er niet in om dit te verwezenlijken. De knoppen zijn goed van grootte maar staan
1. aan de verkeerde kant (links ipv rechts)
en
2. slechts 1 knop staat naast de JList, en dan nog gecentreerd..
De code:
Code: Selecteer alles
list = new JList(listModel);
list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
list.setFixedCellWidth(125);
c.weightx = 1;
c.weighty = 1;
c.gridwidth = 2;
c.gridx = 0;
c.gridy = 0;
c.weighty = 2;
getContentPane().add(list, c);
addButton = new JButton("Add");
c.fill = GridBagConstraints.HORIZONTAL;
c.gridx = 1;
c.gridy = 0;
c.gridwidth = 1;
c.weighty = 1;
getContentPane().add(addButton, c);
viewButton = new JButton("View");
c.fill = GridBagConstraints.HORIZONTAL;
c.gridx = 1;
c.gridy = 1;
c.gridwidth = 1;
c.weighty = 1;
getContentPane().add(viewButton, c);
editButton = new JButton("Edit");
c.fill = GridBagConstraints.HORIZONTAL;
c.gridx = 1;
c.gridy = 2;
c.gridwidth = 1;
c.weighty = 1;
getContentPane().add(editButton, c);
scrollPane.setViewportView(list);
getContentPane().add(scrollPane);
exitButton = new JButton("Exit");
exitButton.addActionListener(
new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
System.exit(0);
}
}
);
c.fill = GridBagConstraints.HORIZONTAL;
c.gridx = 1;
c.gridy = 3;
c.gridwidth = 1;
c.weighty = 1;
getContentPane().add(exitButton, c);
deleteButton = new JButton("Delete");
c.fill = GridBagConstraints.HORIZONTAL;
c.gridx = 1;
c.gridy = 4;
c.gridwidth = 1;
c.weighty = 1;
getContentPane().add(deleteButton, c);