JTabbedPane Variable an Tabs weitergeben

zuckerbrini

Mitglied
Hallo!

Nach ausführlicher Google-Suche und auch im Forum komm ich einfach nicht weiter.

Ich habe JTabbedPane "tabbedPane. Jedem neuen Tab, denn ich erzeuge weiße ich ein Panel der Klasse meinTab zu

Code:
tabbedPane.add(titel, new meinTabPanel());

funktioniert alles super.
Im Tab "First" lese ich Werte aus der DB "firstWert". Auf diesen "firstWert" möchte ich nun in allen anderen Tabs auch zugreifen können. Ich kenn den Namen des Tabs in dem der Wert gelesen wird, bzw weiß ich, dass der Tab an erster Stelle steht.

Ich habe schon versucht in neibTabPanel mit tabbedPane.getTitelAt(i) eine Schleife zu machen und so den richtigen Tab zu finden. Alerdings bekomme ich bei Kontrollausgaben immer, das tabbedPane null ist und nicht wie vermutet die TabbedPane in der meine einzelnen Tabs liegen.

Hab keine Idee mehr wie ich das angehen soll.
Hoffe ich hab mich verständlich ausgedrückt und ihr könnt mir helfen.

Liebe Grüße
zuckerbrini
 

vfl_freak

Premium-User
Moin,

nö, habe ich nicht wirklich verstanden ....

Ich habe JTabbedPane "tabbedPane. Jedem neuen Tab, denn ich erzeuge weiße ich ein Panel der Klasse meinTab zu
Was bitte :confused:

:confused:

Wo fügst Du denn tabbedPane hinzu?

Vlt. hilft Dir dies weiter :
Du kannst mit tabbedPane.getSelectedIndex() den aktuell selektierten Index ermitteln ...
Oder mit tabbedPane.indexOfComponent(meinePanelComponente) ermittelst Du den Index des Tabs mit der spezifizierten Componente ...

Wahrscheinlich wäre auch mehr Code besser :rolleyes:

Gruß
Klaus
 

zuckerbrini

Mitglied
Okay, ich versuchs mal zuvereinfachen.

Im Prinzip möchte ich einfach eine Methode ähnlich getTitleAt(index). Die sollte dann halt getWertAt(index) heißen.
Eine "normale" Getter-Methode ist ja kein Problem, nur wie bekomme ich das mit dem Index hin?
Mein JTabbedPane ist von der Klasse MeinTabbedPane die wiederum von JTabbedPane erbt.

Hab mich vorher wirklich etwas umständlich ausgedrückt...
 

vfl_freak

Premium-User
hmm, was genau meinst Du denn mit Wert ? :(

getTitleAt liefert Dir doch den Titel/Bezeichner des Tabs an der Stelle Index - also :
Java:
tabbedMain.getTitleAt( tabbedMain.getSelectedIndex() )

Falls Du mit Wert irgendein Datum innerhalb der Komponente, die dem Tab hinzugefügt wurde, meinst, dann musst Du halt auf diese Komponente zugreifen ..... :rolleyes:

Gruß
Klaus
 

zuckerbrini

Mitglied
Den Wert lese ich aus der Datenbank. Er wird aber auf dem Tab selber nicht angezeigt. In Wert steht sozusagen ein PrimaryKey, den ich dann auf allen anderen Tabs auch wieder brauch um weitere Daten aus der DB abzufragen.
 

zuckerbrini

Mitglied
Danke, die Seite kenn ich schon auswendig ;)

Beispiel.: es gibt den Tab "Person" und den Tab "Adresse"
"Person" und "Adresse" soll die Fkt. getTitleAt(index) zurückliefern (das passiert auch).

Auf dem Tab "Person" gebe ich nun den Namen einer Person ein und bekomme noch mehr Infos aus der Datenbank zurückgeliefert. Unteranderem auch einen PrimaryKey mit dem Wert 5657 (einfach eine eindeutige Nummer).

Klicke ich nun auf den Tab "Adresse", soll in der DB die Adresse der Person gelesen und angezeigt werden. Hierfür benötige ich wieder den PrimaryKey 5657. Nur wie kann auch auf den PrimaryKey im Tab "Adresse" zugreifen?

Meine Idee war nun eine Funktion zu porgammieren, die ähnlich wie getTitel funktioniert. Eine getPrimaryKeyAt(index) z.B.
Nur schaffe ich es eben nicht auf den PrimaryKey (den ich im Moment nur im Tab "Person" kenne zuzugreifen)

Vielen Dank schonmal , dass du dir solche Mühe gibts.
 

vfl_freak

Premium-User
Danke, die Seite kenn ich schon auswendig ;)
:p

Beispiel.: es gibt den Tab "Person" und den Tab "Adresse"
"Person" und "Adresse" soll die Fkt. getTitleAt(index) zurückliefern (das passiert auch).
Ok, dass sind also die Bezeichner, die auf dem Reiter selbst eingetragen sind ...


Auf dem Tab "Person" gebe ich nun den Namen einer Person ein und bekomme noch mehr Infos aus der Datenbank zurückgeliefert. Unter anderem auch einen PrimaryKey mit dem Wert 5657 (einfach eine eindeutige Nummer).
Also sind "Name der Person" oder auch "PrimaryKey" irgendwelche Textfelder innerhalb eines Panels (oder was auch immer), dass Du den Tab "Person" hinzugefügt hast?
Der Zugriff hängt dann wohl davon ab, wie Du diese Felder geaddet hast !

Klicke ich nun auf den Tab "Adresse", soll in der DB die Adresse der Person gelesen und angezeigt werden. Hierfür benötige ich wieder den PrimaryKey 5657. Nur wie kann auch auf den PrimaryKey im Tab "Adresse" zugreifen?
Du kannst dem tabbedMain einen ChangeListener hinzufügen, der dann (mittels der zu überschreibenden Methode "tabbedMain_stateChanged") registiert, bei welchem Tab sich der Status geändert hat - etwa in dieser Art (ungetestet) :
Java:
if( tabbedMain.getTitleAt(tabbedMain.getSelectedIndex()).equals("Person") ) 
{
    // tue irgendwas mit meinen Daten
}

Gruß
Klaus