Component zugreifen

Hallo,

und zwar habe ich ein TabbedPane erstellt. In jedem Tab befindet sich wieder 2 Tabs. Nun möchte ich den Inhalt des einen Tabs ändern, der gerade geöffnet ist.

Mit
Java:
getComponentIndex
bekommt man ja die Componente des gerade geöffneten Tabs.


Mit
Java:
innerestabbedpane.setComponentAt(innerestabbedpane.getSelectedIndex(), panel)

habe ich das Problem, dass der zuletzt erstellte Tab geändert wird und nicht wie gewünscht der Inhalt des geöffneten Tabs.

Mit
Java:
äußerestabbedpane.setComponentAt(äußerestabbedpane.getSelectedIndex(),panel)
wird logischerweise der gesamte Inhalt eines äußeren Tabs überschrieben und in dem Tab sind die zwei Tabs nicht mehr sichtbar.

Muss ich mir, um das korrekt zu lösen erst mit
Java:
getComponentAt()
die Component holen, dann die innere Registerkarte suchen und diese dann überschreiben, damit ich ich schließlich Component wieder einfügen in den Tab?
 
Zuletzt bearbeitet:

diggaa1984

Top Contributor
schon mal was von update(), repaint() und der gleich gehört ?
F A I L
=> FAIL :noe:


Nun möchte ich den Inhalt des einen Tabs ändern, der gerade geöffnet ist.
Was genau heisst in dem Fall ändern? Möchtest du Komponenten komplett austauschen (wie z.B. mit dem CardLayout)?

ein TabbedPane erstellt. In jedem Tab befindet sich wieder 2 Tabs
Also quasi ein TabbedPane, wobei ein Tab wieder ein TabbedPane mit 2 Tabs enthält?

Dir bleibt eigentlich nichts weiter übrig als dich entweder die Component-Kette entlang zu hangeln oder mitzuschleifen welche Tabs gerade ausgewählt wurden. Dann könntest immer direkt diese Tabs ansprechen, würde aber mit Sicherheit einen Listener vorraussetzen, den du dann anhängst und zentral auswertest.
 
In dem Konstruktor meiner Klasse erstelle ich das TabbedPane. In einer Methode kann man dann einen Tab hinzufügen. In dieser Methode wird wiederum noch ein TabbedPane mit zwei Tabs A und B erstellt, das dem Tab hinzugefügt wird.

In Tab A habe ich einen Button. Wenn dieser gedrückt wird, dann soll der Inhalt von Tab A komplett ersetzt werden, der Button also verschwinden und beispielsweise ein Foto eingefügt werden.
 
V

vanny

Gast
Wie digga schon gesagt hat, musst du dir schon irgendwie die Referenz des Objektes verschaffen, welches du verändern willst.
Das kannst du entweder machen, indem du dir die Passende Indexkombination holst und dann damit die Componente ansprichst oder du speicherst dir immer die aktive(n) Componente(n) in einer Variable und sprichst dann diese an.
Damit dein Programm aber weiss, wann sich diese Werte ändern/aktuallisieren müssen, musst du auf jeden Fall Listener benutzen, die dann diese Änderungen anstoßen.

Gruß Vanny

PS: Den Post von J7Dev kannst du einfach ignorieren, is blödes Zeug.
 

diggaa1984

Top Contributor
wenn du den Button drückst dann hast du doch ne Komponentenhierarchie ausgehend vom Button nach oben zu dem Tab A, das sollte doch reichen. Dann kannst beim ActionListener mit e.getSource() arbeiten und hangelst dich einige Schritte nach oben. Geht natürlich nur wenn du in jedem Tab A den selben Grundaufbau hast (zB Tab A - Panel - Inhalt)
 
Vielleicht noch als Hinweise: Ich mache das Programm mit dem MVC Konzept.

In jedem Tab A ist der selbe Grundaufbau vorhanden. Wie meinst du das jetzt, mit einige Schritt nach oben hangeln?

In meiner Controller Klasse könnte ich ja für ein Action e mit e.getSource() die Component holen und diese dann meiner Methode übergeben, in der ich den Inhalt ändern möchte.
Wie finde ich aber in der Component meinen Tab, den ich ändern möchte?
 
Zuletzt bearbeitet:

Harry Kane

Top Contributor
Meinst du sowas wie das hier?
Java:
void neuenTabAnlegen(){
	JTabbedPane inneresTab = new JTabbedPane();
	JButton tabZwoÄndern = new JButton("Tab 2 ändern");
	inneresTab.addTab("Button", tabZwoÄndern);
	inneresTab.addTab("Noch frei", new JPanel());
	tabZwoÄndern.addActionListener(new TabChanger(inneresTab,1));
        mainTab.addTab("nochn Tab", inneresTab);
}
class TabChanger implements ActionListener(){
	JTabbedPane tab;
	int index;
	TabChanger(JTabbedPane tab, int index){
		this.tab = tab;
		this.index = index;
	}
	public void actionPerformed(ActionEvent ae){
		//Bild holen über einen JFileChooser
		//ImageIcon erzeugen
		//und dann...
		tab.getTabComponentAt(index, new JLabel(imageIcon));
	}

}
Jetzt weiss der Button genau, welchen ActionListener er benachrichtigen soll, und der Listener weiss genau, in welchem Tab der Button betätigt wurde, und was zu tun ist.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
jaleda100 Component für Suche Java Basics - Anfänger-Themen 4
P JFrame Component automatische Größe verhindern Java Basics - Anfänger-Themen 2
I Suche Component welches Map ähnelt Java Basics - Anfänger-Themen 11
G Konstruktor, BorderLayout nimmt Component nicht auf Java Basics - Anfänger-Themen 2
M dynamische JPanels/Component Java Basics - Anfänger-Themen 3
O Probleme mit void java.awt.Component.setBackground(Color c) Java Basics - Anfänger-Themen 2
R Swing Component in separate Klasse Java Basics - Anfänger-Themen 4
J component zugriff Java Basics - Anfänger-Themen 6
G JFrame schliesst nicht mehr wenn Component hinzugefügt Java Basics - Anfänger-Themen 3
K Component vom einem Panel löschen ? Java Basics - Anfänger-Themen 14
H Exception: illegal component position Java Basics - Anfänger-Themen 5
M Einfügen eines eigenen Component Java Basics - Anfänger-Themen 21
G 2x Component Java Basics - Anfänger-Themen 3
G Component.getName() Java Basics - Anfänger-Themen 3
B Paint(Component) und externe Objekte Java Basics - Anfänger-Themen 6
D java.awt.Component - Komponententyp Java Basics - Anfänger-Themen 2
F Welche Component für eine Worklist Java Basics - Anfänger-Themen 5
A Good articles about software component technology? Java Basics - Anfänger-Themen 2
moini Auf Array aus Superklasse zugreifen? Java Basics - Anfänger-Themen 2
Soranix Erste Schritte Struktur als Anfänger // Von einer Klasse auf ein Objekt einer anderen Klasse zugreifen. Java Basics - Anfänger-Themen 6
D Warum kann ich hier nicht auf die Methode zugreifen? Java Basics - Anfänger-Themen 5
frager2345 Fensterklasse, Wie auf Frame im Listender zugreifen (ItemEvents) Java Basics - Anfänger-Themen 7
Encera Auf Objekte aus anderer Klassen zugreifen Java Basics - Anfänger-Themen 20
U Warum kann ich, auf private Variablen zugreifen, wenn ich ein Objekt in der Klasse, die private Variablen hat erstelle und dort drauf zugreifen will? Java Basics - Anfänger-Themen 7
O Mit Instanz von Oberklasse auf Unterklasse zugreifen Java Basics - Anfänger-Themen 2
S Kann nicht auf die Liste zugreifen mit der Methode!? Java Basics - Anfänger-Themen 3
C Auf die Methode einer anderen Klasse zugreifen Java Basics - Anfänger-Themen 1
Vivien Auf eine Variable von einer anderen Klasse aus zugreifen Java Basics - Anfänger-Themen 3
T Auf Instanz der selben Klasse aus überschriebener Methode in Methode zugreifen. Java Basics - Anfänger-Themen 2
S Aus verschachtelter ArrayList auf einen Wert zugreifen Java Basics - Anfänger-Themen 4
F Auf Variablen eines Konstruktors zugreifen Java Basics - Anfänger-Themen 4
C Methoden können nicht auf Instanzvariable der Klasse zugreifen Java Basics - Anfänger-Themen 3
itsmejo Erste Schritte Auf Attribut einer anderen Klasse zugreifen. Java Basics - Anfänger-Themen 14
S Auf Array aus Objekten zugreifen? Java Basics - Anfänger-Themen 1
S Auf Methode einer anderen Klasse zugreifen Java Basics - Anfänger-Themen 3
M Auf erstelltes Objekt einer anderen Klasse zugreifen. Java Basics - Anfänger-Themen 5
N Mit Objekt der Superklasse auf Methode der Subklasse zugreifen Java Basics - Anfänger-Themen 6
N Klassen Warum kann meine Klasse nicht auf Methoden der anderen Klasse zugreifen? Java Basics - Anfänger-Themen 6
A Auf Eigenschaften von Objekten anderer Klassen zugreifen Java Basics - Anfänger-Themen 5
M Auf einen Array innerhalb eines Objekts zugreifen Java Basics - Anfänger-Themen 5
X Auf Attribut einer anderen Klasse zugreifen Java Basics - Anfänger-Themen 2
H Auf Objekte bzw Variabeln aus einer anderen Methode zugreifen Java Basics - Anfänger-Themen 7
C Collections List über Interface zugreifen Java Basics - Anfänger-Themen 32
P Zugreifen auf Object[] Java Basics - Anfänger-Themen 4
W Zwei Programme sollen auf eine Klasse zugreifen Java Basics - Anfänger-Themen 18
X Methode kann auf ArrayListe nicht zugreifen! Java Basics - Anfänger-Themen 10
F Auf Array einer anderen Klasse zugreifen Java Basics - Anfänger-Themen 4
R Auf eine Stelle [i] des Arrays zugreifen Java Basics - Anfänger-Themen 7
L Wie kann man fehlerfrei im Java Code auf die fxml Datei zugreifen? Java Basics - Anfänger-Themen 26
CptK Auf ActionListener von anderer Klass aus zugreifen Java Basics - Anfänger-Themen 5
K Vererbung Auf Methoden von Unterklassen zugreifen Java Basics - Anfänger-Themen 6
G Klassen Mit fremder Klasse auf public Methode zugreifen Java Basics - Anfänger-Themen 23
J Hinzufügen eines Objekts in eine Liste, um später dann nochmal auf das Objekt zugreifen zu können Java Basics - Anfänger-Themen 8
C Auf einzelne Werte aus HashSet zugreifen Java Basics - Anfänger-Themen 10
D Auf ArrayList mit get zugreifen Java Basics - Anfänger-Themen 8
A Variablen Main Klasse soll auf eine andere Klasse zugreifen Java Basics - Anfänger-Themen 3
C Methoden Auf Methoden anderer Klassen zugreifen Java Basics - Anfänger-Themen 10
P Auf JLabel zugreifen Java Basics - Anfänger-Themen 12
S Auf Array einer anderen Klasse zugreifen. Java Basics - Anfänger-Themen 13
das_leon Auf Ordner zugreifen (Vollzugriff) Java Basics - Anfänger-Themen 2
C return kann nicht auf variable zugreifen Java Basics - Anfänger-Themen 26
F Aus einer anderen Klasse auf ein JTextField zugreifen Java Basics - Anfänger-Themen 17
T Methoden Auf Variabler aus anderer Methode zugreifen Java Basics - Anfänger-Themen 5
K Erste Schritte JavaFX - wie von "externer" Klasse auf Methoden des Controllers zugreifen Java Basics - Anfänger-Themen 2
L Auf Methoden einer Subklasse zugreifen ohne Typecast ? Java Basics - Anfänger-Themen 6
DaCrazyJavaExpert Klassen Von einer Klasse auf eine erbende Klasse zugreifen Java Basics - Anfänger-Themen 13
R Auf Variablen einer anderen Klasse zugreifen? Java Basics - Anfänger-Themen 1
F [OOP] Auf eine Variable aus meherer Klassen zugreifen Java Basics - Anfänger-Themen 22
C OOP Von mehreren Klassen aus auf das selbe Objekt zugreifen Java Basics - Anfänger-Themen 8
D Auf angeklicktes JPanel zugreifen Java Basics - Anfänger-Themen 5
J Best Practice Auf DefaultTableModel in andere Klasse zugreifen Java Basics - Anfänger-Themen 4
T Auf Instanz einer Liste zugreifen Java Basics - Anfänger-Themen 2
A Variablen In anderer Klasse auf Objekte von JFrame zugreifen Java Basics - Anfänger-Themen 1
S Methoden Auf Methode der Unterklasse zugreifen? Java Basics - Anfänger-Themen 2
K OOP Mit anderer Klasse auf JTextField zugreifen Java Basics - Anfänger-Themen 5
D Von einem Objekt auf Properties zugreifen Java Basics - Anfänger-Themen 3
H Klassen auf eigene Klasse zugreifen Java Basics - Anfänger-Themen 2
H Methoden Auf Methode zugreifen Java Basics - Anfänger-Themen 14
E Methoden Auf Methoden einer Klasse zugreifen, ohne ein Objekt zu erstellen Java Basics - Anfänger-Themen 2
N Auf TextFeld aus anderer Klasse zugreifen ohne es zu übergeben Java Basics - Anfänger-Themen 3
W aus Methode auf JLabel zugreifen und Image verändern Java Basics - Anfänger-Themen 1
P auf superklasse zugreifen Java Basics - Anfänger-Themen 24
P auf eine andere Klasse zugreifen Java Basics - Anfänger-Themen 12
P aus ActionListener auf HauptFrame zugreifen Java Basics - Anfänger-Themen 4
C Wie kann ich jetzt von der Game.java auf die Timer.java zugreifen? Java Basics - Anfänger-Themen 6
D Methoden Wie können Klassen auf Klassenfremde Objekte zugreifen? Java Basics - Anfänger-Themen 7
H Klassen Auf eine Hashtable aus mehreren Klassen zugreifen Java Basics - Anfänger-Themen 12
D Auf equals von Vaterklasse zugreifen Java Basics - Anfänger-Themen 4
S Methode auf Main zugreifen Java Basics - Anfänger-Themen 5
C Aus mehrern Methoden auf selbes Array zugreifen Java Basics - Anfänger-Themen 4
K Nachträglich auf Objekte zugreifen Java Basics - Anfänger-Themen 2
B Klassen Auf Instanz anderer Klasse zugreifen Java Basics - Anfänger-Themen 1
S auf Array zugreifen Java Basics - Anfänger-Themen 2
D Best Practice Mit Java auf fremdartige Formate zugreifen. Java Basics - Anfänger-Themen 3
D Bei Objekt der Oberklasse auf Unterklassenmethode zugreifen? Java Basics - Anfänger-Themen 4
S Klassen Auf Objekt in Klasse A in Klasse B zugreifen Java Basics - Anfänger-Themen 4
C Klasse auf mehrere Objekte zugreifen lassen Java Basics - Anfänger-Themen 26
I Auf Methode zugreifen ( Objekt.Methode; ) Java Basics - Anfänger-Themen 1
Shams Kann man von einem Interface aus auf die dieses implementierende Klasse zugreifen? Java Basics - Anfänger-Themen 4
G Auf Objekt der selben Klasse zugreifen Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben