Hi, habe ein paar Fragen zum GridBagLayout.
1. die Hauptmaske ist in zwei Teile aufgeteilt, Left und Right Panel. Ich möchte, dass der linke Panel kleiner ist als der rechte Panel.
2. Wie kann man den Abstand vom Button "User anlegen" zum top definieren?
3. Wenn man den Frame vergrössert, dann soll auch die JTable vergrössert werden, aber nicht der linke Panel.
1. die Hauptmaske ist in zwei Teile aufgeteilt, Left und Right Panel. Ich möchte, dass der linke Panel kleiner ist als der rechte Panel.
2. Wie kann man den Abstand vom Button "User anlegen" zum top definieren?
3. Wenn man den Frame vergrössert, dann soll auch die JTable vergrössert werden, aber nicht der linke Panel.
Java:
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.GridLayout;
import java.awt.Insets;
import javax.swing.Box;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
public class MainPanel extends JPanel {
/**
*
*/
private static final long serialVersionUID = 1L;
public MainPanel() {
setLayout(new GridLayout());
GridBagConstraints vConstraints = new GridBagConstraints();
vConstraints.gridx = 0;
add(getLeftPanel(), vConstraints);
vConstraints.gridx = 1;
add(getRightPanel(), vConstraints);
}
public JPanel getLeftPanel() {
JPanel vLeftPanel = new JPanel();
vLeftPanel.setLayout(new GridBagLayout());
GridBagConstraints vConstraints = new GridBagConstraints();
vConstraints.insets = new Insets(5, 0, 0, 0);
vConstraints.fill = GridBagConstraints.HORIZONTAL;
vConstraints.gridx = 0;
vConstraints.gridy = 0;
vLeftPanel.add(Box.createVerticalBox(), vConstraints);
vConstraints.gridy = 1;
vLeftPanel.add(new JButton("User anlegen"), vConstraints);
vConstraints.gridy = 2;
vLeftPanel.add(new JButton("User bearbeiten"), vConstraints);
vConstraints.gridy = 3;
vLeftPanel.add(new JButton("User löschen"), vConstraints);
return vLeftPanel;
}
public JPanel getRightPanel() {
JPanel vRightPanel = new JPanel();
JTable vTable = new JTable(new TableModel());
JScrollPane vPane = new JScrollPane(vTable);
vRightPanel.add(vPane);
return vRightPanel;
}
public static void main(String[] args) {
JFrame n = new JFrame();
n.setContentPane(new MainPanel());
n.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
n.pack();
n.setVisible(true);
}
}