ERLEDIGT
NEIN
NEIN
ANTWORTEN
2
2
ZUGRIFFE
237
237
EMPFEHLEN
-
16.03.08 20:54 #1squeeez Tutorials.de Gastzugang
Hi,
ich habe ein Paar Probleme mit meinen JPanels und ihren LayoutManagern. Mein GUI schaut derzeit so aus: http://www.pictureupload.de/original...01_projekt.jpg
Der Code für die Panels auf der rechten Seite ist dieser hier:
http://phpfi.com/303124
Was ich will ist, dass das JPanel aus der JCompFactory linksbündig angezeigt wird, die Componenten darin aber nicht in der größe geändert werden. Desweiteren sollten die einzelnen Gruppen (Allgemein/Ansicht...) in der Höhe auf ihr minimum gesetzt werden und sollte aufgrund dessen, nicht der ganze Panel ausgefüllt werden, soll unten einfach ein Platzhalter eingefügt werden.
Den Platzhalter kann man wohl via Box.createGlue() hinzufügen, allerdings weiss ich langsam echt nicht mehr wo ich da was hinzufügen/ändern muss damit es dem entspricht, was ich möchte
(sitze da nun schon eine Weile vor
).
Squeez
-
Lade doch mal dein Bild hier hoch (Der Link funktioniert nicht) und poste den Code ebenso hier in Code Tags: [java]...[/java]
-
17.03.08 19:05 #3squeeez Tutorials.de Gastzugang
OK kein Problem

Mittlerweile hat sich allerdings wieder massig am Code getan und ich glaub da steigt man nicht so einfach durch :/ leider
Code java:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90
public UserGruppenPanels(int configID, Gruppe gruppe) { valueList = LokaleSettingsMap.getLokaleConfig(configID).getConfigList(); settingList = LokaleSettings.getLokaleDefaultConfig(); untergruppen = gruppe.getUntergruppen(); grpPanel = new JPanel(new GridLayout(0, 1)); JPanel panel = addPanels(gruppe, false); Box box = Box.createVerticalBox(); box.add(panel); for (Gruppe unterGrp : untergruppen) { if (unterGrp.getStatus() == Gruppe.TEIL_GRP) { panel = addPanels(unterGrp, true); box.add(panel); } } grpPanel.add(box); } private JPanel addPanels(Gruppe gruppe, boolean titel) { JPanel grpPanel = new JPanel(new FlowLayout()); Box box = Box.createVerticalBox(); JPanel panel = new JPanel(new FlowLayout()); String borderTitel = ""; if (titel) { borderTitel = gruppe.getName(); } panel.setBorder(BorderFactory.createTitledBorder(borderTitel)); //Für jede ConfigSetting aus der Liste soll er dies wiederholen HashMap<Integer, JPanel> tmpMap = new HashMap<Integer, JPanel>(); for (int i = 0; i < settingList.size(); i++) { final ConfigSetting setting = settingList.get(i); Gruppe tmpGrp = setting.getGruppe(); if (tmpGrp == gruppe) { Object wert = ""; ConfigValues configValue = null; //Die Config muss mind. einen ConfigValue haben ansonsten ist //dieser Schritt nicht nötig if (!valueList.isEmpty()) { //Für jede ConfigValue aus der ConfigValuesListe der Config, //soll er nun vergleichen ob diese zu einer spezifierten //ConfigSetting gehört. for (ConfigValues value : valueList) { if (value.getConfigSetting().equals(setting)) { //Die ConfigValue gehört zu dieser ConfigSetting, also //muss dieser Wert genommen werden und nicht der //Standardwert. configValue = value; wert = setting.getWert(); } else { wert = setting.getWert(); } } //Wenn keine ConfigValues vorhanden sind, //werden nur die Standardwerte verwendet. } else { wert = setting.getWert(); } //Erstellen der JComponente bezogen auf die ConfigSetting. JCompFactory jCompFactory = new JCompFactory(wert, setting); final JComps newjComp = jCompFactory.getJComps(); if (configValue != null) { compSetListe.add(new JCompSetting(newjComp, configValue)); } else { ConfigValues tmpValue = new ConfigValues(setting.getWert(), setting); compSetListe.add(new JCompSetting(newjComp, tmpValue)); } if (setting.getPosition() == TypInfo.DAVOR) { newjComp.getPanel().add(jCompFactory.getLabel(), "", 0); } else { newjComp.getPanel().add(jCompFactory.getLabel(), ""); } JButton reset = new JButton("Zurücksetzen"); reset.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent event) { newjComp.setValue(setting.getWert()); } }); newjComp.getPanel().add(reset, ""); tmpMap.put(setting.getGrpID(), newjComp.getPanel()); } } if ( !(tmpMap.isEmpty()) ) { for (int i = 1; i <= tmpMap.size(); i++) { box.add(tmpMap.get(i)); } panel.add(box); grpPanel.add(panel); } return grpPanel; }
Dann kommen noch ein paar zwischenschriite und das Panel (newjComp.getPanel())
wird hier erstellt:
Code java:1 2 3 4 5 6 7 8 9 10 11 12
public JCompZeichenkette(Object value, boolean visible) { comp = new JTextField((String) value, TF_LENGTH); comp.setName(Typen.ZEICHENKETTE.toString()); comp.setEnabled(visible); JPanel panel = new JPanel(new FlowLayout()); panel.setName(Typen.ZEICHENKETTE.toString()); panel.add(comp); comp.addActionListener(this); comp.addFocusListener(this); this.value = value; this.panel = panel; }
Ich hoffe man steigt einigermaßen durch :/ Ansonsten wäre der alte Code ein wenig übersichtlicher (http://phpfi.com/303124), da sich an den Panels ansich kaum was geändert hat.
Squeez
Ähnliche Themen
-
Seitenverhältnis beibehalten - LayoutManager
Von Pasukaru im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 2Letzter Beitrag: 14.01.11, 16:56 -
Modifizierte JComponent und LayoutManager
Von SCIPIO-AEMILIANUS im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 5Letzter Beitrag: 28.12.10, 19:19 -
Java Layout und Layoutmanager
Von swas im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 6Letzter Beitrag: 17.08.10, 14:44 -
LayoutManager und Abstand
Von kloakenratte im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 0Letzter Beitrag: 07.05.08, 08:47 -
Layoutmanager?
Von the_skywalker im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 1Letzter Beitrag: 02.06.05, 10:04





Zitieren

Login





