Tab schließen durch Button in Panel

Status
Nicht offen für weitere Antworten.

UnkiDunki

Bekanntes Mitglied
Hi,

ich füge Tabs (JPanels) einer TabbedPane hinzu (Bsp. panelA) und kann mit Hilfe der Klasse ButtonTabComponent (http://java.sun.com/docs/books/tuto...roject/src/components/ButtonTabComponent.java) diese Tabs mit Hilfe eines Buttons im Reiter selbst auch schließen.

Java:
tabbedPane.insertTab("panelA", null, new JPanelA(irgendeineID), "panelA", tabbedPane.getTabCount());
tabbedPane.setTabComponentAt(tabbedPane.getTabCount()-1, new ButtonTabComponent(tabbedPane));
tabbedPane.setSelectedIndex(tabbedPane.getTabCount()-1);

Jetzt stehe ich aber vor dem Problem, dass ich nicht weiss, wie ich
a) neben der ButtonTabComponent auch mit Buttons in den hinzugefügten JPanels (in dem Fall jetzt "panelA") die Tabs zum schließen bekomme und
b) bei Nutzung der ButtonTabComponent ihrerseits überprüfen kann, ob sich was im panelA geändert hat (z.B. boolschen Wert abfragen) und so vor dem Schließen fragen kann, ob man bei Änderungen nicht erst abspeichern möchte.

ZUSAMMENGEFASST: Mir geht es also um das Zusammenspiel zwischen den Panels und der ButtonTabComponent und wie sie sich untereinander austauschen können.

Vielen Dank schon mal für eure Bemühungen, Anregungen und Hilfestellungen! :)
 

André Uhres

Top Contributor
a) pane.remove(pane.getSelectedIndex());
b) wir können z.B. in der panelA Klasse eine Methode hasChanged() einführen.
 

UnkiDunki

Bekanntes Mitglied
[UPDATE]

erst mal danke für deine Antworten. Allerdings wusste ich beides schon :)
Das Problem ist, wie wende ich das genau an?

zu a)
Habe jetzt die tabbedPane übergeben und dann in der JPanelA-Klasse bei entsprechendem Ereignis den von dir genannten Code benutzt, was auch funktioniert.
Java:
tabbedPane.insertTab("panelA", null, new JPanelA(irgendeineID, tabbedPane), "panelA", tabbedPane.getTabCount());
Ist das so richtig? Denn nur weil es funktioniert, muss es ja nicht bedeutet, dass man das nicht noch optimaler machen könnte...

zu b) Könnte ja jetzt eigentlich wie oben verfahren und "JPanelA" der Instanz "ButtonTabComponent" übergeben, aber wie stelle ich das an?
Ich lege das Objekt (JPanelA) ja erst im Methodenaufruf als Parameter an, damit auch beliebig viele Tabs der Pane hinzugefügt werden können...
WAS HABE ICH DA FÜR ALTERNATIVEN?

Vielen Dank noch mal :)
 
Zuletzt bearbeitet:

UnkiDunki

Bekanntes Mitglied
Doch! Bin schon geduldig, aber kann mir echt keiner mehr weiterhelfen? Sollte ich das vielleicht verständlicher formulieren oder wo ist das Problem? :)

OT: Wurde bestimmt schon angemerkt, sofern das Problem nicht nur bei mir besteht, aber die "Frage offen" und "Erledigt"-Buttonicons sind vertauscht. Mit "Frage offen" kann ich das Thema als erledigt markieren und vice versa.
 

André Uhres

Top Contributor
a) Hier genügt wohl ein addTab, statt insertTab.
b) Hier können wir mit einer gemeinsamen Panelreferenz arbeiten (nach der Übergabe an ButtonTabComponent wird sie eh nicht mehr genutzt).
 

UnkiDunki

Bekanntes Mitglied
Hi André,

danke dir!
zu a) Hast natürlich recht. Ist einfacher, da ich mich nicht um den Index kümmern muss. Wird ja logischerweise immer ans Ende gehängt :)

zu b) Ja... und genau da stelle ich mich blöd an. Ich habe nämlich, so komisch es klingt, keinen Plan wie ich das anstelle.
Es können ja während des Programmlaufes eine beliebige Anzahl an Instanzen erstellt werden, kann da also nicht einfach so arbeiten:

Java:
 JPanelA panel = new JPanelA(irgendeineID, tabbedPane);
tabbedPane.addTab("panelA", panel)
...

Vielen Dank noch mal im Voraus :)
 

André Uhres

Top Contributor
Java übergibt alle Parameter, auch Referenzen, "by value". Das bedeutet, daß eine übergebene Referenz in Wirklichkeit eine Kopie der Originalreferenz ist.
Nach der Übergabe hat ein Objekt also zwei Referenzen und wir können problemlos die Originalreferenz für ein neues Objekt nutzen.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
_user_q Kann man ein 2. JavaFX-Fenster auch beenden (exit) statt schließen (close) lassen? AWT, Swing, JavaFX & SWT 8
H Beim JFrame erstellen ein anderes schließen AWT, Swing, JavaFX & SWT 0
S GUI Schließen Button auf der linken Seite AWT, Swing, JavaFX & SWT 2
emma_louisa JavaFX MenuBar Zweitfenster; bei Button "Abbrechen" nur das Zweitfenster schließen AWT, Swing, JavaFX & SWT 2
K Frame aus anderer Klasse schließen AWT, Swing, JavaFX & SWT 3
T JavaFX Dialog schließt ohne dass es schließen soll AWT, Swing, JavaFX & SWT 1
S Mit JButton neues Fester öffnen und das alte schließen AWT, Swing, JavaFX & SWT 3
T Fenster schließen AWT, Swing, JavaFX & SWT 4
R JFrame schließen AWT, Swing, JavaFX & SWT 9
D Frame beim starten eines anderen Frames schließen AWT, Swing, JavaFX & SWT 2
T Klasse über JButton schließen AWT, Swing, JavaFX & SWT 4
D JavaFX Beim Schließen (Rotes X) Code ausführen AWT, Swing, JavaFX & SWT 1
D Geöffnetes Dialogfenster schließen AWT, Swing, JavaFX & SWT 11
C Java FX Probleme beim Schließen einer Stage AWT, Swing, JavaFX & SWT 11
T Event Handling JDialog schließen, sobald ein neuer erzeugt wird AWT, Swing, JavaFX & SWT 3
O Neuen JFrame öffnen und alten schließen AWT, Swing, JavaFX & SWT 7
D Swing Schließen von JDialog soll auch JFrame schließen. AWT, Swing, JavaFX & SWT 4
C Programm mit Passwort schließen AWT, Swing, JavaFX & SWT 5
E JavaFX JavaFX Fenster nicht schließen AWT, Swing, JavaFX & SWT 4
thet1983 offne Fenster gemeinsam schließen AWT, Swing, JavaFX & SWT 8
F Swing JDialog schließen - WindowListener bekommt dispose nicht mit AWT, Swing, JavaFX & SWT 0
U Swing Beim Bedienen eines Buttons JFrame schließen AWT, Swing, JavaFX & SWT 2
W SWT Dialog richtig schließen? AWT, Swing, JavaFX & SWT 0
I JFrame mit JButton schließen? AWT, Swing, JavaFX & SWT 0
F JavaFX KeyListener zum Fenster öffnen/schließen AWT, Swing, JavaFX & SWT 9
U Mehrere Oberflächeninstanzen seperat schließen AWT, Swing, JavaFX & SWT 5
VfL_Freak AWT Browser öffnen und schließen via java.awt.Desktop AWT, Swing, JavaFX & SWT 4
L Event Handling windowAdapter - NullPointerException beim Schließen AWT, Swing, JavaFX & SWT 5
R SWT Wizard schließen AWT, Swing, JavaFX & SWT 2
M Swing Einzelne Fenster schließen AWT, Swing, JavaFX & SWT 2
L SWT Eingabefelder beim Schließen des Forms auslesen AWT, Swing, JavaFX & SWT 3
M Swing ButtonListener Fenster schließen AWT, Swing, JavaFX & SWT 15
C Swing Wie kann ich im Programm das Menü schließen AWT, Swing, JavaFX & SWT 2
J Swing JInternalFrame schließen ändern? AWT, Swing, JavaFX & SWT 7
S JDialog per Button schließen AWT, Swing, JavaFX & SWT 2
M Fenster schließen - Listener AWT, Swing, JavaFX & SWT 5
D Neues Frame öffnen - und dazu altes schließen AWT, Swing, JavaFX & SWT 5
VfL_Freak Swing KeyListener, um einen Dialog per ESC zu schließen AWT, Swing, JavaFX & SWT 6
M JPopupMenu per Klick schließen und gleichzeitig ActionEvent auf JButton? AWT, Swing, JavaFX & SWT 15
S Fremdes Fenster schließen AWT, Swing, JavaFX & SWT 2
E Fenster schließen und ein anderes öffnen AWT, Swing, JavaFX & SWT 9
L Frame Schließen und neustarten AWT, Swing, JavaFX & SWT 4
qwerqer Swing JDialog Darstellungsprobleme - Dialog lässt sich nicht schließen AWT, Swing, JavaFX & SWT 3
Madlip SWT DateTime Widget Schließen AWT, Swing, JavaFX & SWT 4
K beim Schließen des JFrames, Methode aufrufen AWT, Swing, JavaFX & SWT 3
X Öffnen Schließen Fenster AWT, Swing, JavaFX & SWT 4
J Schließen über x soll zwei Prozesse beenden AWT, Swing, JavaFX & SWT 7
J Programm schließen AWT, Swing, JavaFX & SWT 4
H Anwendung schließen ohne System.exit AWT, Swing, JavaFX & SWT 5
0 Fenster schließen AWT, Swing, JavaFX & SWT 2
B AWT mehrere Fenster schließen AWT, Swing, JavaFX & SWT 8
S JPopupMenu schließen in SystemTray AWT, Swing, JavaFX & SWT 2
D Fenster schließen AWT, Swing, JavaFX & SWT 7
S AWT Fenster schließen und Programm beenden AWT, Swing, JavaFX & SWT 10
F Swing JFrame Methode beim Schließen aufrufen AWT, Swing, JavaFX & SWT 5
2 Zusätzliches Fenster mit OK-Button schließen AWT, Swing, JavaFX & SWT 7
B Fenster schließen AWT, Swing, JavaFX & SWT 4
N Swing Von 2 dimensionalem Array auf JTextfield schließen und färben AWT, Swing, JavaFX & SWT 6
E JWindow bewegen, minimieren, vergrößern und schließen AWT, Swing, JavaFX & SWT 5
W Swing Event bei Schließen des Fensters AWT, Swing, JavaFX & SWT 6
I Fenster schließen - Button AWT, Swing, JavaFX & SWT 13
S Swing JPopupMenu nicht schließen AWT, Swing, JavaFX & SWT 2
G Swing Fenster schließen AWT, Swing, JavaFX & SWT 6
R WindowClosing Event - Schließen rückgängig machen? AWT, Swing, JavaFX & SWT 2
aze FlowLayout:Lücken "schließen" AWT, Swing, JavaFX & SWT 2
D Swing Dialog schließen verhindern bei Fehleingabe AWT, Swing, JavaFX & SWT 2
T Schließen eines JDialogs setzen den JFrame in den Hintergrund AWT, Swing, JavaFX & SWT 2
N JInternalFrame minimieren und schließen AWT, Swing, JavaFX & SWT 2
M JWindow schließen wenn Frame sich ändert AWT, Swing, JavaFX & SWT 2
E Fenster schließen über X AWT, Swing, JavaFX & SWT 8
DStrohma JFrame mit WindowListener schließen AWT, Swing, JavaFX & SWT 12
M Main Frame schließen und neue Klasse aufrufen? AWT, Swing, JavaFX & SWT 2
T AWT Vollbild öffnen und schließen AWT, Swing, JavaFX & SWT 3
D Swing JMenu wieder schließen lassen AWT, Swing, JavaFX & SWT 7
ModellbahnerTT Neuer JFrame schließen AWT, Swing, JavaFX & SWT 4
D aktuells fenster + letztes fenster schließen AWT, Swing, JavaFX & SWT 5
S Frames schließen AWT, Swing, JavaFX & SWT 6
R [gelöst]Fenster schließen - trotz Endlosschleife in der Paint-Methode? AWT, Swing, JavaFX & SWT 3
J Swing Anwendung schließen im Listener AWT, Swing, JavaFX & SWT 3
C Swing Schließen, Maximieren, Minimieren entfernen AWT, Swing, JavaFX & SWT 6
D Schließen der GUI auf knopfdruck AWT, Swing, JavaFX & SWT 7
T Views bedingt öffnen oder schließen AWT, Swing, JavaFX & SWT 6
L JFrame-Verhalten bei Klick auf Schließen-Kreuz ändern AWT, Swing, JavaFX & SWT 3
klattiator Icon und Button zum Schließen in einem Tab AWT, Swing, JavaFX & SWT 3
M JFileChooser schließen AWT, Swing, JavaFX & SWT 2
T JPopupMenu "schließen" AWT, Swing, JavaFX & SWT 7
W Problem bei awt und Swing mit Schließen des Fensters AWT, Swing, JavaFX & SWT 2
T JDiaolog schließen. AWT, Swing, JavaFX & SWT 5
P Schließen-Button bei JTabbedPane? AWT, Swing, JavaFX & SWT 2
V JFrame schließen und Programmzeile(n) ausführen AWT, Swing, JavaFX & SWT 3
A Eins von zwei offnen Fenster/Frames schließen AWT, Swing, JavaFX & SWT 2
S methode aufrufen beim Schließen von GUI AWT, Swing, JavaFX & SWT 7
A Bei Klick auf disabled JMenuItem JMenu nicht schließen AWT, Swing, JavaFX & SWT 2
J Fenster schließen ohne das Programm zu beenden AWT, Swing, JavaFX & SWT 3
S JFrame per Button schließen AWT, Swing, JavaFX & SWT 3
D WindowEvent beim Schließen eines JFrame AWT, Swing, JavaFX & SWT 20
G ein AWT-Frame schließen . AWT, Swing, JavaFX & SWT 8
A Schließen eines JOptionPane.showConfirmDialog AWT, Swing, JavaFX & SWT 6
C Beim Schließen eines fensters, schließen sich alle AWT, Swing, JavaFX & SWT 5
F Programmiertes Fenster schließen AWT, Swing, JavaFX & SWT 3

Ähnliche Java Themen

Neue Themen


Oben