Hallo,
habe ein kleines Problem mit dem Flowlayout. Bin mir nicht sicher ob es einfach ein Denkfehler ist oder ob ich das Ganze prinzipiell zu einfach sehe.
Ich habe ein JPanel (Flowlayout) in dem ich weitere JPanels für bestimmte Abteilungen hinzufüge. Die Abteilungs-Panels sind ebenfalls im Flowlayout und enthalten die einzelnen Arbeitsplätze von Mitarbeitern. Die Abteilungs-Panels lassen sich auf- und zuklappen. Ziel ist, dass sich die einzelnene Mitarbeiter sauber vertikal durchscrollen lassen und alles möglichst kompakt ist. Ich habe zwei Bilder angefügt, welche die Situation wohl besser beschreiben.
Im Moment hab ich alles noch mit einem BorderLayout verbunden. Jedoch passt sich die Größe der JPanels nicht so an wie ich mir das in den Bilder vorstelle. Was fehlt mir, um das Ganze Konstrukt dynamischer zu gestalten? Habe schon mit "setPreferedSize" experimentiert. Aber sobald ich die Fenstergröße mit der Maus ändere, stimmen die dort eingetragenen Maße nicht mehr mit der Realität überein.
Vielleicht hat ja jemand einen Tipp! Danke******
habe ein kleines Problem mit dem Flowlayout. Bin mir nicht sicher ob es einfach ein Denkfehler ist oder ob ich das Ganze prinzipiell zu einfach sehe.
Ich habe ein JPanel (Flowlayout) in dem ich weitere JPanels für bestimmte Abteilungen hinzufüge. Die Abteilungs-Panels sind ebenfalls im Flowlayout und enthalten die einzelnen Arbeitsplätze von Mitarbeitern. Die Abteilungs-Panels lassen sich auf- und zuklappen. Ziel ist, dass sich die einzelnene Mitarbeiter sauber vertikal durchscrollen lassen und alles möglichst kompakt ist. Ich habe zwei Bilder angefügt, welche die Situation wohl besser beschreiben.
Im Moment hab ich alles noch mit einem BorderLayout verbunden. Jedoch passt sich die Größe der JPanels nicht so an wie ich mir das in den Bilder vorstelle. Was fehlt mir, um das Ganze Konstrukt dynamischer zu gestalten? Habe schon mit "setPreferedSize" experimentiert. Aber sobald ich die Fenstergröße mit der Maus ändere, stimmen die dort eingetragenen Maße nicht mehr mit der Realität überein.
Vielleicht hat ja jemand einen Tipp! Danke******
Code:
private JPanel getJPanel() {
if (jPanel == null) {
jPanel = new JPanel();
jPanel.setLayout(new FlowLayout(FlowLayout.LEFT));
jPanel.setLayout(new BorderLayout());
// jPanel.setLayout(new BoxLayout(getJPanel(), BoxLayout.Y_AXIS));
jPanel.add(getGroupStorage(), BorderLayout.NORTH);
jPanel.add(getGroupLogistic(), BorderLayout.CENTER);
jPanel.add(getGroupDefault(), BorderLayout.SOUTH);
jPanel.addComponentListener(new java.awt.event.ComponentAdapter() {
public void componentResized(java.awt.event.ComponentEvent e) {
System.out.println("componentResized()" + getSize());
groupLogistic.repaint();
groupLogistic.validate();
}
});
}
return jPanel;
}
Code:
private JPanel getGroupLogistic() {
if (groupLogistic == null) {
groupLogistic = new JPanel();
groupLogistic.setBorder(BorderFactory.createTitledBorder(null,
"Logistic dep.",
TitledBorder.DEFAULT_JUSTIFICATION,
TitledBorder.DEFAULT_POSITION,
myFont,
myColor));
groupLogistic.add(newDevice( icon, "5 devices"), null);
groupLogistic.add(ex1, null);
groupLogistic.add(ex2, null);
groupLogistic.add(ex3, null);
groupLogistic.add(ex4, null);
groupLogistic.add(ex5, null);
groupLogistic.setLayout(new FlowLayout(FlowLayout.LEFT, 30, 30));
groupLogistic.setBackground(Color.white);
}
return groupLogistic;
}