Hi,
ich habe eine Gui gebastelt, welche besteht aus einem erweiterten SplitPaneLayout,
so dass ich oben im oberen Bereich eine eine Textaerea und ein Panel habe, im unteren Bereich 3 Panels.
Die 3 unteren Panels habe ich mit ein GridBagLayout angeordnet damit sie nebeneinander sind und möchte jetzt die 3 Panels wider mit einem GridBagLayout weiter bearbeiten.
Leider kann ich in den GridBagConstraints angeben was ich will, es reagiert einfach nicht, das Label befindet sich immer in der Mitte des Panels. Ich habe jetzt schon alles mögliche probiert, vielleicht kann mir jemand helfen.
ich habe eine Gui gebastelt, welche besteht aus einem erweiterten SplitPaneLayout,
so dass ich oben im oberen Bereich eine eine Textaerea und ein Panel habe, im unteren Bereich 3 Panels.
Die 3 unteren Panels habe ich mit ein GridBagLayout angeordnet damit sie nebeneinander sind und möchte jetzt die 3 Panels wider mit einem GridBagLayout weiter bearbeiten.
Leider kann ich in den GridBagConstraints angeben was ich will, es reagiert einfach nicht, das Label befindet sich immer in der Mitte des Panels. Ich habe jetzt schon alles mögliche probiert, vielleicht kann mir jemand helfen.
Java:
import java.awt.Color;
import java.awt.Dimension;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.util.Arrays;
import java.util.List;
import javax.swing.BorderFactory;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JSplitPane;
import javax.swing.border.Border;
public class Main {
/**
* @param args
*/
public static void main(String[] args) {
JFrame frame = new JFrame();
JPanel panelBottom = new JPanel(new GridBagLayout());
JPanel panel1 = new JPanel(new GridBagLayout());
JPanel panel2 = new JPanel(new GridBagLayout());
JPanel panel3 = new JPanel(new GridBagLayout());
JComponent label1 = new JLabel("jkdfhajksdfh");
JLabel label2 = new JLabel("asdklöjfaskldjfaklö");
Border lowerBorder;
lowerBorder = BorderFactory.createLoweredBevelBorder();
SplitPaneTop splitPaneTop = new SplitPaneTop();
JSplitPane top = splitPaneTop.getSplitPane();
top.setBorder(null);
panelBottom.setPreferredSize(new Dimension(900, 200));
//panelBottom.setBackground(Color.GRAY);
GridBagConstraints gbc1 = new GridBagConstraints();
gbc1.fill = GridBagConstraints.BOTH;
gbc1.gridx = 0;
gbc1.gridy = 0;
//gbc1.insets = new Insets(5,5,5,5);
panel1.setPreferredSize(new Dimension(300, 200));
panel1.setBackground(Color.GREEN);
panel1.setBorder(lowerBorder);
panelBottom.add(panel1, gbc1);
GridBagConstraints gbc2 = new GridBagConstraints();
gbc2.fill = GridBagConstraints.BOTH;
gbc2.gridx = 1;
gbc2.gridy = 0;
//gbc2.insets = new Insets(5,5,5,5);
panel2.setPreferredSize(new Dimension(300, 200));
//panel2.setBackground(Color.ORANGE);
panel2.setBorder(lowerBorder);
panelBottom.add(panel2, gbc2);
GridBagConstraints gbc3 = new GridBagConstraints();
gbc3.fill = GridBagConstraints.BOTH;
gbc3.gridx = 3;
gbc3.gridy = 0;
//gbc3.insets = new Insets(5,5,5,5);
panel3.setPreferredSize(new Dimension(300, 200));
//panel3.setBackground(Color.BLUE);
panel3.setBorder(lowerBorder);
panelBottom.add(panel3, gbc3);
GridBagConstraints gbcP1 = new GridBagConstraints();
gbcP1.fill = GridBagConstraints.BOTH;
//gbcP1.gridwidth = GridBagConstraints.REMAINDER;
gbcP1.anchor = GridBagConstraints.PAGE_START;
gbcP1.gridy =4;
gbcP1.gridx = 5;
panel1.add(label1, gbcP1);
GridBagConstraints gbcP2 = new GridBagConstraints();
// gbcP2.gridx = 0;
// gbcP2.gridy = 1;
panel2.add(label2, gbcP2);
JSplitPane splitPaneVertical = new JSplitPane(JSplitPane.VERTICAL_SPLIT, top, panelBottom);
splitPaneVertical.setOneTouchExpandable(true);
splitPaneVertical.setDividerLocation(180);
//Provide minimum sizes for the two components in the split pane
top.setMinimumSize(new Dimension(100, 50));
panelBottom.setMinimumSize(new Dimension(300, 200));
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setContentPane(splitPaneVertical);
frame.pack();
frame.setVisible(true);
}
}
Java:
import java.awt.Dimension;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JSplitPane;
import javax.swing.JTextArea;
import javax.swing.text.TabableView;
public class SplitPaneTop {
JTextArea tA1, tA2;
JScrollPane sP1, sP2;
JSplitPane splitPane;
JPanel panelRight;
public SplitPaneTop() {
tA1 = new JTextArea("Dies ist ein Text", 50, 20);
sP1 = new JScrollPane(tA1);
panelRight = new JPanel();
// tA2 = new JTextArea("Dies ist uach ein Text", 50,20);
// sP2 = new JScrollPane(tA2);
splitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, sP1, panelRight);
splitPane.setOneTouchExpandable(true);
splitPane.setDividerLocation(450);
Dimension minimumSize = new Dimension(100, 50);
sP1.setMinimumSize(minimumSize);
panelRight.setMinimumSize(minimumSize);
splitPane.setPreferredSize(new Dimension(900, 200));
}
public JSplitPane getSplitPane() {
return splitPane;
}
}