Portal > Foren > Java > Desktop-Applikationen und Grafik > EGBConstraints - Verständnisproblem
Antwort
 
Themen-Optionen Thema durchsuchen
Alt 02.03.2006, 15:47 Nach oben    #1
Ben
Benjamin Klaile
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.480
Standard EGBConstraints - Verständnisproblem

Hallo,
in pagos Weblog findet man folgenden Beitrag: GridBag made easy

In der Klasse EGBConstraints gibt es nun zwei Methoden installGap() mit unterschiedlichen Parameterlisten. Jou. Ich frage mich allerdings, was der Aufruf da genau macht. Also ich bekomme das einfach nicht so wirklich in mein Hirn
Der Aufruf ist z.B.
Java Code:
  1. c.installGap(root,
  2.     "pref, 5, pref, 5, pref", // defines the rows
  3.     "pref, 5, pref, 5, pref, 5, pref");

Ich habe mir die Methoden angeschaut, die dann dort aufgerufen werden, aber ich verstehe einfach nicht, was da abläuft.

Wenn mir jemand dabei helfen kann - muss ja nicht unbedingt pago sein - dann immer gerne.

Danke, Grüße Ben.
Ben ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 02.03.2006, 16:25 Nach oben    #2
Projektleiter
 
Registriert seit: 30.11.2005
Ort: Bottrop
Beiträge: 1.110
Standard

Schau dir mal das Bildchen hier an:


Die blauen und roten Quadrate sind die Dinger, die durch diese Methode installiert werden. (wobei die normalerweise natürlich unsichtbar sind)

Auch hier zu erkennen:

Die Bereiche, wo "5px" steht, wurden via installGap realisiert. Du gibst also an, wieviel Platz zwischen den einzelnen Komponenten liegen soll.

"pref" => da ist irgendeine Komponente
Npx => Ein Box.(vertical/horizontal)Strut der Größe N

*puh*
Wie erkläre ich das?

Also:

Nehmen wir an, du machst das:
Code:
JPanel panel = new JPanel(new GridBagLayout());
EGBConstraints c = new EGBConstrains();
c.installColumnGap(panel, "pref, 5, pref");
Dann wird automatisch dieser Code ausgeführt:
Code:
panel.add(Box.createHorizontalStrut(5), c.xy(2, 0));
Wenn du dann manuell deine Komponenten an (1,1) und (3,1) hinzufügst, ist zwischen den beiden ein Abstand von 5 Pixeln.

Halbwegs klar geworden? ^^"
pago ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 02.03.2006, 16:36 Nach oben    #3
Ben
Benjamin Klaile
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.480
Standard

Moment. Das "pref" gibt einfach nur an "hey, hier liegt eine Komponente!"?
Ja?

Wenn ja, dann hab ich es glaub ich verstanden
Ben ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 02.03.2006, 16:58 Nach oben    #4
Projektleiter
 
Registriert seit: 30.11.2005
Ort: Bottrop
Beiträge: 1.110
Standard

Japp. "pref" wie in "preferred size" (der Komponente, die da liegt).
pago ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 02.03.2006, 17:03 Nach oben    #5
Ben
Benjamin Klaile
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.480
Standard

Okay. Fein. Das teste ich dann mal aus .
Ben ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 02.03.2006, 17:32 Nach oben    #6
Ben
Benjamin Klaile
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.480
Standard

Kurzer Nachhakler ..
Diese Stelle hier
Java Code:
  1. root.add(new JLabel("Red:"), c.xy(1, 1)); // first row, first column
  2. root.add(new JLabel("Blue:"), c.xy(1, 3));
  3. root.add(new JLabel("Green:"), c.xy(1, 5));
xy(1,3) ist dann erste Spalte, dritte Zeile. Okay. Da steht "dritte Zeile" anstatt "zweite Zeile", weil ... ?

Danke
Ben ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 02.03.2006, 17:47 Nach oben    #7
Projektleiter
 
Registriert seit: 30.11.2005
Ort: Bottrop
Beiträge: 1.110
Standard

Weil in der zweiten Spalte der 5px Spacer installiert wurde.

Da ich ja nur nen Aufsatz für's GridBagLayout geschrieben habe, gings leider nicht anders.
pago ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 02.03.2006, 18:07 Nach oben    #8
Ben
Benjamin Klaile
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.480
Standard

Jou. Dachte ich mir schon. Super. Yeah ...
Ben ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 06.03.2006, 09:42 Nach oben    #9
Ben
Benjamin Klaile
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.480
Standard

*sorry für das Doppelposting*

Ich nutze nun diese Constraints, habe aber das Problem, dass die Komponenten nun alle in der Mitte des Panels angezeigt werden. Ich würde aber ja gerne, dass sich die Komponenten von oben anordnen bzw. dass ich die Komponenten irgendwie "fix" im Panel anordnen kann.

Wenn es geht, dann mal bitte sagen wie .
Dankö.

Grüße Ben.
Ben ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 06.03.2006, 10:01 Nach oben    #10
Projektleiter
 
Registriert seit: 30.11.2005
Ort: Bottrop
Beiträge: 1.110
Standard

Versuch's mal mit "anchor: page_start".

Bin mir da aber selbst nicht sicher... zur Not kannst du das Panel in ein anderes Panel mit BorderLayout stecken (und da dann in "PAGE_START"). Ich glaube mich zu erinnern, dass das ein Problemchen mit'm GridBagLayout war, dass das nicht ordentlich ging... bin mir da aber wirklich nicht sicher.
pago ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 06.03.2006, 10:08 Nach oben    #11
Ben
Benjamin Klaile
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.480
Standard

Wo genau muss ich das denn angeben?
Ben ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 06.03.2006, 10:53 Nach oben    #12
Projektleiter
 
Registriert seit: 30.11.2005
Ort: Bottrop
Beiträge: 1.110
Standard

Bei der ersten Komponente, die du hinzufügst, und nach jedem Aufruf von normalize().

Beispiel:
Code:
JPanel panel = new JPanel(new GridBagLayout());
EGBConstraints c = new EGBConstraints();
panel.add(blubb, c.xy(1, 1, "anchor:page_start");
pago ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 06.03.2006, 12:41 Nach oben    #13
Ben
Benjamin Klaile
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.480
Standard

Wie hier zu sehen rufe ich
Code:
add(barricadeChooser, this.c.xy(1,1, "anchor: page_start"));
auf. Dies hat allerdings genau keinen Einfluss.

Ich lasse das jetzt erstmal weg und werde, wenn es denn wirklich nicht anders geht, ein panel mit einem GridBagLayout bestücken und dieses dann in einem BorderLayout an den Seitenanfang "PAGE_START" setzen.

Is' aber keine schöne Lösung .
Ben ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 06.03.2006, 13:26 Nach oben    #14
Projektleiter
 
Registriert seit: 30.11.2005
Ort: Bottrop
Beiträge: 1.110
Standard

Nö, aber ist halt auf Basis von GridBagLayout und was das nicht kann, kann EGBConstraints auch nicht. :/
pago ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 06.03.2006, 13:36 Nach oben    #15
Ben
Benjamin Klaile
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.480
Standard

Toll .. *gg*
So wirklich verstehen tu ich aber noch nicht, wie man dann überhaupt mit den Angaben arbeitet. Aber egal. Trotzdem werde ich das weiterhin benutzen.
Macht Vieles einfacher .

Nochmals Danke.

Grüße Ben.
Ben ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[PHP] crypt() - Verständnisproblem bob PHP-Programmierung 5 17.07.2006 18:15


Alle Zeitangaben in WEZ +2. Es ist jetzt 21:05 Uhr.


Powered by vBulletin® Version 3.7.3 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0

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