Swing JTree und TreeModel

C

Camino

Gast
Hallo,

seit 2 Tagen tüftel ich nun schon an einem Problem herum. Und zwar möchte ich in einer Datenbank Textbausteine speichern und diese dann in einer Swing-Anwendung als JTree anzeigen, da die Textbausteine verschiedenen Bereichen zugeordnet werden sollen.

Die Grundstruktur für die Datenbank (PostgreSQL) hatte ich mir so angelegt:

id - fortlaufende ID-Nummer (Primärschlüssel)
parent_id - ID-Nummer des Elternelementes
bezeichnung - Name/Kurzbezeichnung des Textbausteines bzw. des Bereiches
text - der Textbaustein selbst (falls Textbaustein; wenn Bereich, dann leer)

Um eine Baumstruktur zu erreichen, haben alle Elemente eine Parent-ID, damit sie in den Tree eingebaut werden können. Bei Knoten (Bereiche und Unterbereiche) bleibt das Feld 'text' leer, nur bei den Blättern steht der Text des Textbausteines in der Datenbank.

Diese Datenstruktur bilde ich in einer Klasse 'Textbaustein' ab:
Java:
...

public class Textbaustein {
	
	private int id;
	private int parent_id;
	private String bezeichnung;
	private String text;
	
	
	public Textbaustein() {
		
	}
	
	
	public Textbaustein(int id, int parent_id, String bezeichnung, String text) {
		
		this.id = id;
		this.parent_id = parent_id;
		this.bezeichnung = bezeichnung;
		this.text = text;
		
	}

// hier folgen getter- und setter-Methoden...
...

Ich erstelle ein TreeModel, in dem eine ArrayList<Textbaustein> mit den Daten aus der Datenbank erstellt wird. Dieses TreeModel wird dann dem JTree im Konstruktor übergeben. Im Tree sollen die Bereiche angezeigt werden und aufklappbar sein, wenn es weitere Unter-Bereiche oder Textbausteine darin gibt. 'Textbausteine' ist der oberste und erste Bereich (root), unter den alle anderen Bereiche aufgeklappt werden können. Sieht in etwa so aus (soll erweiterbar sein):

Textbausteine (root)
|-- Briefe
| |-- Nachfragen
| | |-- Textbaustein 1
| | |-- Textbaustein 2
| |-- Mahnungen
| |-- Textbaustein 3
|-- E-Mails
|-- Bescheide

Ich schaffe es nun aber irgendwie nicht, über die Methoden im TreeModel die richtigen Daten aus dieser ArrayList dem JTree zu übergeben und anzeigen zu lassen.

So sieht mein TreeModel aus (in den Methoden steht evtl. etwas Murks drin, da ich da schon längere Zeit herumprobiert habe):
Java:
public class TreeModelTextbausteine
implements TreeModel {
	
	private DBHandlerTextbausteine dbHandlerTextbausteine;
	
	private ArrayList<Textbaustein> textbausteinListe;

	
	public TreeModelTextbausteine() {
	
		dbHandlerTextbausteine = new DBHandlerTextbausteine();
		
		textbausteinListe = dbHandlerTextbausteine.getTextbausteinListe();

	}


	@Override
	public Object getRoot() {
		return textbausteinListe.get(0);
	}


	@Override
	public Object getChild(Object parent, int index) {
		Textbaustein t = (Textbaustein)parent;
		
		return textbausteinListe.get(index);
	}

	@Override
	public int getChildCount(Object node) {
		Textbaustein t1 = (Textbaustein)node;
		int count = 0;
		for (Textbaustein t : textbausteinListe) {
			if(t.getParentId() == t1.getId())
				count++;
		}
		return count;
	}

	@Override
	public int getIndexOfChild(Object parent, Object child) {
		Textbaustein t1 = (Textbaustein)parent;

		for (Textbaustein t : textbausteinListe) {
			if(t == child)
				return textbausteinListe.indexOf(t);
		}
		
		return -1;
	}



	@Override
	public boolean isLeaf(Object node) {
		
		Textbaustein t1 = (Textbaustein)node;
		
		if (t1.getText().equals("") || t1.getText().isEmpty())
			return false;
		
		return true;
		
	}


	
	@Override
	public void addTreeModelListener(TreeModelListener arg0) {
		// TODO Auto-generated method stub
		
	}
	
	@Override
	public void removeTreeModelListener(TreeModelListener arg0) {
		// TODO Auto-generated method stub
		
	}

	@Override
	public void valueForPathChanged(TreePath arg0, Object arg1) {
		// TODO Auto-generated method stub
		
	}
	

}

Ich bin mir jetzt nicht sicher, ob meine Grundstruktur in der Datenbank (mit ID und Parent-ID) überhaupt schon richtig und sinnvoll ist, oder ob nicht da schon der Fehler drin liegt. Das Auslesen aus der Datenbank und füllen der ArrayList klappt jedenfalls soweit. Problematisch wird es erst beim TreeModel, da ich nicht weiss, wie ich auf die Daten bzw. Objekt zugreifen muss.

Gruss
Camino
 
C

Camino

Gast
Ja, danke für die Antwort. Ich hatte jetzt noch weiter nach Lösungen gesucht, und denke, es ist wohl einfacher, das mit einem DefaultTableModel und DefaultMutableTreeNodes zu versuchen, und den JTree dann so mit den Daten aus der Datenbank zusammenzubauen. Das TableModel, so wie ich es versucht habe, scheint mir doch ein bisschen zu schwierig zu sein. Vor allem reicht es mir wahrscheinlich ja auch schon aus, den JTree nur aufzubauen und anzeigen zu lassen, evtl. noch auf Klicks/Selektionen zu reagieren. Neue Datensätze werde ich dann über einen Dialog/Formular in die Datenbank einfügen oder darüber bearbeiten.

Gruss
Camino
 
C

Camino

Gast
Na ja, bin gerade doch nochmal dabei mir das Beispiel des TreeModel in den FAQ anzuschauen. Ich werde jetzt mal anders herum vorgehen, und mir das TreeModel erst mal statisch mit fest eingetragenen Strings vorbauen, und danach erst schauen, wie ich diese Daten dann aus der vorgegebenen Datenstruktur (ArrayList) rausholen kann. Vielleicht verstehe ich so den Aufbau des TableModel dann besser...

Gruss
Camino
 
C

Camino

Gast
So, diese Vorgehensweise hat mich jetzt schon ein bisschen weiter gebracht, indem ich ein TreeModel mit fest eingetragenen Werten nach und nach an meine Datenstruktur (ArrayList<Textbaustein>) angepasst habe. Leider hab ich da noch ein kleines Problem...

Aber erst mal mein TreeModel:
Java:
import java.util.ArrayList;

import javax.swing.event.TreeModelListener;
import javax.swing.tree.TreeModel;
import javax.swing.tree.TreePath;

public class TreeModelTextbausteine2
implements TreeModel {
	
	
	
	private DBHandlerTextbausteine dbHandlerTextbausteine;
	
	private ArrayList<Textbaustein> textbausteinListe;

	
	public TreeModelTextbausteine2() {
	
		dbHandlerTextbausteine = new DBHandlerTextbausteine();
		
		textbausteinListe = dbHandlerTextbausteine.getTextbausteinListe();

	
	}


	// Diese Methode gibt die Wurzel des Baumes an.
    public Object getRoot() {
        return textbausteinListe.get(0);
    }

    // Hier wird das index'te Kind des Knotens "parent" bestimmt
    public Object getChild( Object parent, int index ) {

    	return textbausteinListe.get(index);

    }

    // Gibt für jeden Knoten an, wieviele Kinder er hat
    public int getChildCount( Object parent ) {
    	
    	int count = 0;
    	
    	for (Textbaustein t : textbausteinListe) {
    		
    		if(((Textbaustein)parent).getId() == t.getParentId())
    			count++;
    		
    	}
    	
        return count;
    }

    
    // Gibt an, ob ein Knoten ein Blatt ist. Ein Blatt kann in einem
    // JTree nicht weiter geöffnet werden.
    public boolean isLeaf( Object node ) {
        return getChildCount( node ) == 0;
    }

    
    // Gibt an, welchen Index der Knoten "child" als Kind vom 
    // Knoten "parent" hat. Wenn man folgenden Code ausführt:
    // 'Object result = getChild( parent, getIndexOfChild( parent, child ))',
    // dann muss "result" und "child" dasselbe Objekt sein. 
    public int getIndexOfChild( Object parent, Object child ){
        int max = getChildCount( parent );
        for( int i = 0; i < max; i++ )
            if( getChild( parent, i ).equals( child ))
                return i;
        
        return -1;
    }

	
	
	@Override
	public void addTreeModelListener(TreeModelListener arg0) {
		// TODO Auto-generated method stub
		
	}
	
	@Override
	public void removeTreeModelListener(TreeModelListener arg0) {
		// TODO Auto-generated method stub
		
	}

	@Override
	public void valueForPathChanged(TreePath arg0, Object arg1) {
		// TODO Auto-generated method stub
		
	}
	
}

Dann die Datenbankstruktur:
Code:
CREATE TABLE textbausteine (
    textbaustein_id serial PRIMARY KEY,
    parent_id integer NOT NULL,
    name varchar(100) NOT NULL,
    text text NOT NULL
);


Und letztlich die Testdaten, die ich aus einem SQL-File eingelesen habe:
Code:
INSERT INTO textbausteine VALUES (DEFAULT, 0, 'Textbausteine', '');
INSERT INTO textbausteine VALUES (DEFAULT, 1, 'Briefe', '');
INSERT INTO textbausteine VALUES (DEFAULT, 1, 'E-Mails', '');
INSERT INTO textbausteine VALUES (DEFAULT, 1, 'Bescheide', '');
INSERT INTO textbausteine VALUES (DEFAULT, 2, 'Info', '');
INSERT INTO textbausteine VALUES (DEFAULT, 2, 'Ausgaben', '');
INSERT INTO textbausteine VALUES (DEFAULT, 2, 'Einnahmen', '');
INSERT INTO textbausteine VALUES (DEFAULT, 2, 'fehlende Angaben', '');
INSERT INTO textbausteine VALUES (DEFAULT, 2, 'Härten', '');
INSERT INTO textbausteine VALUES (DEFAULT, 2, 'Kosten', '');
INSERT INTO textbausteine VALUES (DEFAULT, 2, 'Schulden', '');
INSERT INTO textbausteine VALUES (DEFAULT, 4, 'Zuschussantrag negativ', '');
INSERT INTO textbausteine VALUES (DEFAULT, 4, 'Zuschussantrag positiv', '');
INSERT INTO textbausteine VALUES (DEFAULT, 4, 'Zuschussantrag englisch', '');
INSERT INTO textbausteine VALUES (DEFAULT, 3, 'E-Mails 1', 'Text bla bla bla');
INSERT INTO textbausteine VALUES (DEFAULT, 3, 'E-Mails 2', 'auch Text bla bla bla...');
INSERT INTO textbausteine VALUES (DEFAULT, 3, 'E-Mails 3', 'auch Text bla bla bla...');

Jetzt zu meinem kleinen Problem:

- im TreeModel gibt es die Methode public Object getChild( Object parent, int index ). Diese liefert mir die Kinder zu einem Parent, mit der Anzahl, die für das Parent bei der Methode public int getChildCount( Object parent ) ermittelt wurde. In der API steht dazu: "Returns the child of parent at index index in the parent's child array." Ich hab mir den index jetzt auch mal ausgeben lassen. Wenn das Parent 3 Childs hat, dann geht der index eben von 0 bis 2. Soweit klar. Nur, wie komme ich jetzt über diesen index an meine Childs? Also, wie greife ich auf diesen genannten parent's child array zu?

Vielleicht kann mir ja wer auf die Sprünge helfen...

Gruss
Camino
 

dku

Mitglied
Hi Camino,

letztendlich haben deine Parents kein extra Child Array. Ich denke die Doku geht davon aus, dass jedes Baum Element seine Kinder selbst verwaltet, sprich ein eigenes Array für weitere Elemente pflegt.

Evtl. musst du dir deine Methoden etwas verbiegen - ziehe mir deinen Code gleich mal in Netbeans ;-)

Viele Grüße,
David
 
C

Camino

Gast
letztendlich haben deine Parents kein extra Child Array. Ich denke die Doku geht davon aus, dass jedes Baum Element seine Kinder selbst verwaltet, sprich ein eigenes Array für weitere Elemente pflegt.

Evtl. musst du dir deine Methoden etwas verbiegen - ziehe mir deinen Code gleich mal in Netbeans ;-)

Hmmm, das bedeutet, ich müsste mir in der Methode public Object getChild( Object parent, int index ) einen Array<Textbaustein> zusammenbasteln, der sich ausgehend vom Parent aus der ArrayList<Textbaustein> die Objekte holt, die als Child des Parent dort vermerkt sind? Und dann greift der index der Methode auf das Array zu und hat somit das richtige Objekt? Ich werde das gleich mal testen...

Camino
 
C

Camino

Gast
OK, hab jetzt mal eine temporäre ArrayList nur für die Childs des bestimmten Parents genommen. So scheint es zu funktionieren. Bin mir aber nicht sicher, ob das so ganz richtig ist (speziell jetzt das Anlegen der temporären ArrayList)...

Java:
// Hier wird das index'te Kind des Knotens "parent" bestimmt
    public Object getChild( Object parent, int index ) {
    	
    	ArrayList<Textbaustein> tempListe = new ArrayList<Textbaustein>();

    	for (Textbaustein t : textbausteinListe) {
    		
    		if(((Textbaustein)parent).getId() == t.getParentId())
    			tempListe.add(t);
    		
    	}
    	
    	return tempListe.get(index);

    }
 

dku

Mitglied
wenn's klappt ists ok ;-)

wie gross soll das Model denn mal werden?
Du hast natürlich einen relativ hohen Aufwand, dadurch dass du ständig über Listen iterierst.
 
C

Camino

Gast
wenn's klappt ists ok ;-)

wie gross soll das Model denn mal werden?
Du hast natürlich einen relativ hohen Aufwand, dadurch dass du ständig über Listen iterierst.

OK, hab gerade mal die Daten in der Datenbank erweitert, scheint soweit zu funktionieren. Ich denke mal, dass die Anzahl der Textbausteine einigermassen übersichtlich bleibt und nicht über 100-200 hinausgeht. Was gäbe es denn für eine Alternative, anstatt über die Liste zu iterieren?

Was mir aber auch noch aufgefallen ist: wenn ein Bereich eines Textbausteines leer ist, dann wird es als Blatt angezeigt. Ich hätte es aber gerne als leeren Knoten. Muss ich wohl die isLeaf-Methode nochmal bearbeiten...

Gruss
Camino
 

dku

Mitglied
Im Prinzip so, wie es das DefaultTreeModel vor gibt: Mit TreeNodes arbeiten, welche wiederum TreeNodes als Kinder beinhalten usw.

Müsstest dann entsprechend beim Auslesen der Datenbank die Zuordnung Parent<->Child erledigen.

Gibt noch ein "fieses" Stichwort zum Thema Bäume in Datenbanken: nested Sets - brauchst du nicht zwingend, ist aber mal einen Blick wert.


Viele Grüße,
David
 
C

Camino

Gast
Im Prinzip so, wie es das DefaultTreeModel vor gibt: Mit TreeNodes arbeiten, welche wiederum TreeNodes als Kinder beinhalten usw.

Müsstest dann entsprechend beim Auslesen der Datenbank die Zuordnung Parent<->Child erledigen.
Hmm, dann müsste ich aber doch trotzdem über die Liste iterieren, weil ich ja schauen muss, welche der Datensätze Parents und welche Childs sind, und welche davon unterhalb von welchen sind. Aus der Datenbank bekomme ich ja diese ArrayList geliefert.

Gibt noch ein "fieses" Stichwort zum Thema Bäume in Datenbanken: nested Sets - brauchst du nicht zwingend, ist aber mal einen Blick wert.
Ja, werde ich mir mal anschauen...

Gruss und danke
Camino
 
C

Camino

Gast
Hallo André,

danke für die Antwort, aber eigentlich war ich ja nun mittlerweile so weit, dass ich mein TableModel zum Laufen gekriegt hatte.

Das Problem mit den leeren Knoten, die keine Blätter sein sollen, hab ich nun auch hingekriegt, indem ich einfach überprüfe, ob im Feld "text" was drin steht. Bei Knoten ist dieses Feld ein leerer String, bei Blättern steht dort ein Textbaustein drin. Ist vielleicht nicht so optimal aber es funktioniert. Muss ich nur aufpassen, dass bei Knoten nicht aus Versehen doch mal was als "text" eingetragen ist, sonst wird er ja als Blatt angezeigt und kann nicht mehr aufgeklappt werden. Oder fällt einem da eine bessere Möglichkeit ein?

Dabei ist nun aber ein anderes kleines Problem aufgetaucht. Und zwar werden bei leeren Knoten vor dem Icon ebenfalls die kleinen Dreieck-Symbole angezeigt, die andeuten, dass man den Ordner aufklappen kann. Da aber in dem Ordner nichts drin ist, klappt auch nichts auf, beim Klick auf das Dreieck. Dieses Dreieck verschwindet dann aber. Ist es möglich, dieses Symbol bei leeren Ordnern wegzubekommen?

Gruss
Camino
 
C

Camino

Gast
Hallo André,

hab das mit deinem Icon mal getestet (schönes Icon ;-) ). Leider funktioniert es nicht. Das kleine dreieckige Symbol vor dem Icon, welches anzeigt, dass man den Knoten (Ordner) öffnen kann, ist trotzdem noch da, wenn der Ordner leer ist. Vermutlich könnte das auch mit dem L&F zusammenhängen (ich benutze zur Zeit Nimbus).

Ich hab mal nachgeschaut. Es gibt wohl für den JTree 3 unterschiedliche Default-Icons: Knoten geschlossen, Knoten geöffnet und Blatt. Wenn ich nun auf das Dreieck eines leeren Ordners klicke, dann wird das Icon für einen geöffneten Ordner angezeigt und das Dreieck verschwindet. Ich kann nun an die Stelle klicken, an der vorher das Dreieck war, und das Icon des Ordners lässt sich von geschlossen zu offen ändern. Das Dreieck selbst bleibt aber dann verschwunden.

Gruss
Camino
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
X Swing 2 TreeModel und ein JTree synchronisieren AWT, Swing, JavaFX & SWT 3
O JTree/TreeModel/DefaultMutableTreeNodes thread safe machen AWT, Swing, JavaFX & SWT 3
S JTree mit Daten aus Model füllen, eigenes TreeModel (gute Dokumentation des Problems) AWT, Swing, JavaFX & SWT 2
M JTree und TreeModel mit 2 Klassen AWT, Swing, JavaFX & SWT 3
T JTree - TreeModel AWT, Swing, JavaFX & SWT 3
B JTree & Treemodel AWT, Swing, JavaFX & SWT 3
J JTree/TreeModel add/delete Methoden AWT, Swing, JavaFX & SWT 2
H JTree und TreeModel AWT, Swing, JavaFX & SWT 4
FrittenFritze JTree, LazyLoading und "Rückwärtstraversion" AWT, Swing, JavaFX & SWT 3
J Falsches Rendern durch JCheckBox in eigenem JTree AWT, Swing, JavaFX & SWT 6
F jTree und das Model aus einer eigenen Klasse AWT, Swing, JavaFX & SWT 1
F Jtree aus Klasse mit Arraylisten AWT, Swing, JavaFX & SWT 1
A Swing JList zu JTree AWT, Swing, JavaFX & SWT 11
richis-fragen JTree +/- verschwidet wenn Knoten keine Kinder hat... AWT, Swing, JavaFX & SWT 6
RalleYTN Modaler Dialog und JTree Node mit sehr... seeeeehr vielen Elementen AWT, Swing, JavaFX & SWT 6
Z Swing JTree DefaultMultipleTreeNode Repräsentation ändern AWT, Swing, JavaFX & SWT 1
Z Swing Drag&Drop zwischen JTable und JTree AWT, Swing, JavaFX & SWT 4
W Swing Anzeigefehler bei JTree AWT, Swing, JavaFX & SWT 1
S Zwei JTree, ein Model, bei Selection im ersten JTree soll der zweite die Inhlate anzeigen AWT, Swing, JavaFX & SWT 2
S JRadioButton und JCheckBox im JTree AWT, Swing, JavaFX & SWT 14
H Swing JTree: Zählt der rootNode mit? AWT, Swing, JavaFX & SWT 2
krgewb Swing JTree - Farbe von nodes ändern AWT, Swing, JavaFX & SWT 4
R JTree behandeln AWT, Swing, JavaFX & SWT 2
E Swing Copy und Paste eines einzelnen Knoten aus einem JTree AWT, Swing, JavaFX & SWT 1
U dynamisches JTree erstellen AWT, Swing, JavaFX & SWT 2
J JTree updaten AWT, Swing, JavaFX & SWT 2
N Swing JTree Problem beim erstellen der Knoten AWT, Swing, JavaFX & SWT 0
H JTree in JScrollPane passt sich nicht an Größe von JPanel an AWT, Swing, JavaFX & SWT 2
T Swing API Frage zu Verzeichnisbäumen und JTree AWT, Swing, JavaFX & SWT 1
T JTree mit Symbolen? AWT, Swing, JavaFX & SWT 8
R Anfängerfrage: Ansichten des JTree AWT, Swing, JavaFX & SWT 1
H Swing JTree Minimumgröße AWT, Swing, JavaFX & SWT 2
F Swing JTree + DiffUtils // Markierung Nodes aufheben AWT, Swing, JavaFX & SWT 2
I JTree wird nicht angezeigt AWT, Swing, JavaFX & SWT 3
M Swing JTree AWT, Swing, JavaFX & SWT 4
M Nodes in JTree nicht anzeigen AWT, Swing, JavaFX & SWT 0
T JTree mit Cloud verbinden AWT, Swing, JavaFX & SWT 0
H JTree Probleme AWT, Swing, JavaFX & SWT 9
F Swing Drag and Drop in JTree aus verschiedenen Listen AWT, Swing, JavaFX & SWT 6
M JButton wird von JTree überdeckt AWT, Swing, JavaFX & SWT 4
J Auf Dateien in JTree zugreifen AWT, Swing, JavaFX & SWT 15
F jTree.startEditingAtPath(path); funktioniert nicht bei eigenem CellEditor? AWT, Swing, JavaFX & SWT 8
D Swing JTree Steuerung AWT, Swing, JavaFX & SWT 11
S Swing JTree verwirrt mich AWT, Swing, JavaFX & SWT 2
T JTree - Elemente mit Doppelklick auswählen AWT, Swing, JavaFX & SWT 6
J JTree speichern AWT, Swing, JavaFX & SWT 4
N Swing JTree TreeCellRenderer mit html und automatischen Zeilenumbruch AWT, Swing, JavaFX & SWT 8
O Swing JTree um Label (oder Panel) erweitern AWT, Swing, JavaFX & SWT 9
T JTree, Knoten mehrmals verwenden AWT, Swing, JavaFX & SWT 5
B JTree mit Ordneransicht in JPanel einbinden AWT, Swing, JavaFX & SWT 4
D JTree node reagiert bei Klick nicht immer AWT, Swing, JavaFX & SWT 2
M Swing JTree: Wie kann ich die Hintergrundfarbe der selection ändern?!?! AWT, Swing, JavaFX & SWT 7
D Mehrmals auf Node im JTree klicken AWT, Swing, JavaFX & SWT 2
D JSplitPane, Jtree, CardLayout (constraint must be a string) AWT, Swing, JavaFX & SWT 9
N Swing FileFilter lässt JTree sich nicht öffnen AWT, Swing, JavaFX & SWT 2
N Swing JTree TreePath zu Windows Pfad? AWT, Swing, JavaFX & SWT 2
RELAXccc Swing JTree + JScrollPane, refresh Problem AWT, Swing, JavaFX & SWT 17
X Swing JTree aktualisieren AWT, Swing, JavaFX & SWT 2
V Swing JTree - Umbenennen selbst handlen. AWT, Swing, JavaFX & SWT 2
E Übergebenem JTree Blätter hinzufügen AWT, Swing, JavaFX & SWT 2
E Wert eines selektierten Knotens in einem JTree auslesen AWT, Swing, JavaFX & SWT 3
A Swing JTree - Nodes expanden AWT, Swing, JavaFX & SWT 2
D JTree nach Klick auf einen Hyperlink aktualisieren AWT, Swing, JavaFX & SWT 3
B JTree AWT, Swing, JavaFX & SWT 9
T Menüacceleratoren verschwinden bei JTree AWT, Swing, JavaFX & SWT 5
1 Swing JTree collapse child nodes AWT, Swing, JavaFX & SWT 4
B JTree - sehr individuell AWT, Swing, JavaFX & SWT 3
G Swing JTree - Verbindungslinien entfernen AWT, Swing, JavaFX & SWT 4
A Swing Herausfinden ob bei JTree Klick auf "+"/"-" anahnd x,y AWT, Swing, JavaFX & SWT 2
S Swing JTree und seine Listener... AWT, Swing, JavaFX & SWT 4
L Swing JTree wird nicht selektiert AWT, Swing, JavaFX & SWT 2
P [JTree] Markierhilfe der Drop-Location selber gestalten. AWT, Swing, JavaFX & SWT 4
A JTree aus Pfaden erzeugen AWT, Swing, JavaFX & SWT 3
K Swing Hilfe beim JTree! AWT, Swing, JavaFX & SWT 3
X Datensätze in JTree AWT, Swing, JavaFX & SWT 2
L Update JTree Verzeichnisse AWT, Swing, JavaFX & SWT 9
E JTree Auswahl AWT, Swing, JavaFX & SWT 2
K JTree width der Treenodes auf 100% AWT, Swing, JavaFX & SWT 6
C JTree LastSelectedPathComponent benutzen? AWT, Swing, JavaFX & SWT 3
S Swing JTree Node Text nicht richtig angezeigt AWT, Swing, JavaFX & SWT 2
Landei Swing JTree mit "Tabellenzeilen"? AWT, Swing, JavaFX & SWT 5
Rudolf Swing JTree Node anhand vom Namen finden AWT, Swing, JavaFX & SWT 4
S JTree Elemente nach BaumLevel abspeichern AWT, Swing, JavaFX & SWT 2
Z JTree rootChilds AWT, Swing, JavaFX & SWT 2
D JTree DefaultMutableTreeNode ActionPerformed AWT, Swing, JavaFX & SWT 3
T JTree Daten in DB schreiben am besten SQL AWT, Swing, JavaFX & SWT 21
J Lazy Loading eine JTree während Scrollen AWT, Swing, JavaFX & SWT 11
S JTree & JComboBox - Elemente übers Fenster hinaus anzeigen AWT, Swing, JavaFX & SWT 9
E Swing JTree AWT, Swing, JavaFX & SWT 2
J Swing Lazy Loading in JTree wenn gescrollt wird AWT, Swing, JavaFX & SWT 3
N Knotenanordnung in JTree AWT, Swing, JavaFX & SWT 4
S JTree mit Liste zur Speicherung AWT, Swing, JavaFX & SWT 3
S Jtree CheckNode mit JPanel AWT, Swing, JavaFX & SWT 32
G JTree entfernt Nodes nicht AWT, Swing, JavaFX & SWT 12
S Swing JTree wird nicht angezeigt AWT, Swing, JavaFX & SWT 3
J JTree AWT, Swing, JavaFX & SWT 2
R [JTree/DefaultTreeCellRenderer] eigenes Renderer-Panel, so breit wie der JTree AWT, Swing, JavaFX & SWT 2
S Swing JTree mit KeyListener AWT, Swing, JavaFX & SWT 2
E Swing JTree setSelectedPath funktioniert nicht?! AWT, Swing, JavaFX & SWT 5
E JTree Autoscroll bei Drag and Drop AWT, Swing, JavaFX & SWT 4

Ähnliche Java Themen

Neue Themen


Oben