JTree - Elemente mit Doppelklick auswählen

tomier

Aktives Mitglied
Liebe Leute,

Ich habe gestern einen ziemlich umfassenden Thread (http://www.java-forum.org/datenbankprogrammierung/139141-datenbank-baumhierarchie.html#post920854)
gepostet, aber ich habe ein mein kleines Problem schon mal hinbekommen.


Ich habe an meinen Thread 2 Anhänge.
angebotserstellung1_excel.png zeigt das ungefähre Soll-Bild.

angebotserstellung1_v0_1_java.png das jetztige Ist-Bild.

Meine Frage ist wie kann ich den elementen der 3.Ebene (z.b. 30x30) aus dem linkem Baum per Doppelklick nach und nach auf der anderen Seite einfügen, dass die Anzeige listenartig funktioniert und vielleicht auch austauschbar ist?

Ich sage jetzt schon mal vielen Dank und hoffe das wird nicht als Pushen oder Spam gewertet.
 

Anhänge

  • angebotserstellung1_excel.png
    angebotserstellung1_excel.png
    17,5 KB · Aufrufe: 37
  • angebotserstellung1_v0_1_java.png
    angebotserstellung1_v0_1_java.png
    27 KB · Aufrufe: 43

Marco13

Top Contributor
Was die eigentliche Frage ist, hat sich mir nicht ganz erschlossen. Aber das könnte ein Symptom sein: Dort sind viele Dinge vermischt. Du hast diesen Explorer, und willst mit dem nicht Dateien anzeigen, sondern die Dinge aus der Datenbank? Ohne den Überblick über das eigentliche Ziel zu haben: Es könnte schon hilfreich sein, das, was aus der DB gelesen wird, in ein Datenmodell zu packen. Wie genau das aussehen sollte oder könnte ist "Domänenwissen". Vielleicht gleich die Hierarchie, sowas wie
Java:
class Materialart { // --- !!! --- Besser alles auf Englisch...
    public String getName() { ... }
    public List<Artikel> getArtikel() { ... }
}

class Artikel
{
    public String getName() { ... }
    public int getWidthMM() {  ... } // Breite in mm

    public int getPrice() { ... }
}
(wobei ich die Hierarchie nicht verstanden habe... wo "Balken" und "Arbeitszeit" auf der gleichen Ebene liegen ???:L :autsch: )

Die Artikel-Objekte dann in TreeModels und TableModels zu packen, könnte ein zweiter Schritt sein. Und wie man auf einen Doppelklick hin das angeklickte Objekt woanders hin kopiert, ist ja vermutlich unabhängig von der Datenbank und allem anderen ...

Aber warte mal ab, was andere da noch für Ideen haben...
 

tomier

Aktives Mitglied
Danke für deine Antwort.
DAs heißt die Datenbank direkt in den Baum auszulesen ist zu unsauber?

Stattdessen Klassen für jeden Spaltennamen habe ich das richtig verstanden, dass man immer ein Objekt pro Spalten erzeugt und daraus den JTree zusammenbaut?

Was ist der Nachteil an meiner Methode?


Das das unabhängig ist von der Datenbank mit der grafischen Oberfläche ist mir klar.
Nur ich bin Programmieranfänger und von SWING habe ich nicht wirklich ne Ahnung wie es funktioniert.

Wie kann ich die Elemente aus der 3. Ebene als "button" gestalten, sodass ich eben per Doppelklick die Elemente in die "liste" auf der anderen Seite einfügen kann?
 

Marco13

Top Contributor
Die DB-Klasse aus dem anderen Thread war wohl auch nicht compilierbar - und, das ist ein wichtiger Punkt: Nicht testbar. Oder direkt: Wenn man die Daten aus einem ResultSet direkt in ein TreeModel bugsiert, erscheint mir das sehr heikel, weil es unflexibel ist: Man kann keine andere Datenquelle mehr verwenden, weil sie hart verdrahtet ist, und keine andere Präsentation, weil sie auch hart verdrahtet ist - und um nur das Fenster aufzumachen und zu schauen, ob das mit dem Doppelklick endlich funktioniert, braucht man schon eine DB-Anbindung ;)

Designentscheidungen wird dir kaum jemand abnehmen können. Aber es erscheint (mir) nahe liegend, zu überlegen, welche Struktur die Daten haben, die man da behandeln will. Ist das vielleicht nur eine Liste von Artikeln, und die "Hierarchie", mit der sie angezeigt werden sollen, ergibt sich indirekt aus den Eigenschaften der Artikel? (Also dass zwei Artikel nur einen gemeinsamen Elternknoten haben, weil sie das gleiche 'Material' haben?)

In dem Code aus dem anderen Post hattest du doch schon einen JTree mit MouseListener. Das Standardverhalten eines JTrees ist, bei einem Doppelklick den Knoten auszuklappen. Aber wenn es nur um die Blätter geht, braucht man sich darum ggf. nicht zu kümmern. Wenn man dort nun mit einer mouseClicked-Methode schaut, welches Objekt ausgewählt wurde, kann man das ja direkt weiterreichen (Drag & Drop kann ein bißchen fummeliger werden, aber geht auch).
 

tomier

Aktives Mitglied
Ohne Probleme war es kompilierbar.
Aber du hast vollkommen recht.

Ja mir fehlt es da an Wissen bzw. Erfahrung wie ich das designen angehen soll.

Die Daten sind wie folgt (Thema Schlosserei):
es sind Artikel, die zuerst durch die Materialart unterschieden werden.
z.B. Balken, Zylinder, Türrahmen,...

Dann gibt es bei allen Artikeln unterschiedliche Typen: z.b. Zylinder unterschiedliche Arten 3KS, Multi,...

Der Typ hat wiederum unterschiedliche Abmessungen z.B.: 30cmx30cm, 20cmx20cm

in einer datenbank sind das alles nur attribute und diese will ich in genau so einen Baum.
Das mit den Klassen für jedes einzelne dieser Attribute ist eine gute Idee.
Vielen Dank.

Ehrlich gesagt den code für das Swing-Fenster habe ich nur aus dem Inet kopiert und minimal adaptiert.

Das mit dem Doppelklick hast du falsch verstanden (und ich habe es schelcht erklärt):

Wenn die z.b. den Zylinder Art 3KS und dann die "3.Ebene" 30cmx30cm anklicke soll der Zylinder 3KS 30cmx30cm im rechten Teil des Excel-Beispiel angezeigt und die ganzen Datenfelder angezeigt werden.

Ein Texteingabefeld soll die Menge/Anzahl der Stück zum eingeben möglich machen.
Die Prozent sollen als Dropdown (in einer Liste hinterlegt) auswählbar sein.
Die Summen unten sollen weiterrechnen.

Ist das so ca. verständlich?

Es ist ein großes Unterfangen zum Anfangen aber so lerne ich gleich vieles dazu.

Vielen Dank für eure Hilfe. Und vor allem deine marco13.
 

tomier

Aktives Mitglied
Ich habe mich an marco13 gehalten und hoffe ich habe damit eine anständige Datenstruktur gefunden.
Nur muss ich zu meinem Bedauern feststellen, dass es sehr langsam öffnet.

Ich habe 210 Datensätze in der MySQL-Datensätze (LOKALE DATENBANK) und es braucht ca. 8 Sekunden zum kompilieren.
Mir kommt das langsam vor, liege ich da richtig?

Ist diese Struktur nicht sehr optimal oder was denkt ihr?

Java:
import java.sql.*;

import java.util.ArrayList;
import java.util.List;
import java.io.IOException;

import javax.swing.tree.DefaultMutableTreeNode;


public class material_database {

	/**
	 * @param args
	 */
	private String tablename;
	private Connection con;
	public Statement stmt1;
	public Statement stmt2;
	public Statement stmt3;
	private String database;
	private String database_user;
	private String database_password;
	private String attribut_ebene1;
	private String attribut_ebene2;
	private String attribut_ebene3;
	private ResultSet material;	
	private ResultSet article;	
	private ResultSet sizes;	
	
	public static void main(String[] args) {
		// TODO Auto-generated method stub
	
	}
	public material_database(){
		tablename = "material";
		database="//localhost/andrease";
		database_user="root";
		database_password="";
		attribut_ebene1="Materialart";
		attribut_ebene2="Artikelbezeichnung";
		attribut_ebene3="Abmessungen";
				
	
	} //End of constructor material_database
			
	public void start_database_connection() {
		try {	
		
			Class.forName("com.mysql.jdbc.Driver").newInstance();
			con = DriverManager.getConnection(
					"jdbc:mysql:"+database,database_user,database_password);
			
			con.setReadOnly(true);
			stmt1 = con.createStatement();
			stmt2 = con.createStatement();
			stmt3 = con.createStatement();					
		} 
		
		catch(Exception e) {
				System.out.println("Fehler"+e);		
		}
	} //end of start_database_connection
	
	
	public List<Material> getMaterial() { 
    	List<Material> tmp = new ArrayList<Material>(); 	
    	try {	
    		start_database_connection();
    		material = stmt1.executeQuery("Select "+attribut_ebene1+" from "+tablename+" GROUP BY "+attribut_ebene1);
        	while(material.next()){
        		Material ma= new Material();
        		ma.materialname=material.getString(1);
        		tmp.add(ma); 	
        	}        	
        	material.close();
    		stmt1.close();
    		con.close();	
      
        	return tmp;   	
		} // end of try block
    	
    	catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			System.out.println("Fehler"+e);
			return null;		
		}	// end of catch block	
    	
    } // end getMaterial()
								
		//GET-METHODEN
		
		public DefaultMutableTreeNode getTree() { //getTree-Methode um Materialübersicht anzuzeigen
			DefaultMutableTreeNode root=new DefaultMutableTreeNode();
			root.setUserObject("Material");		
	        DefaultMutableTreeNode level1;
	        DefaultMutableTreeNode level2;
	        DefaultMutableTreeNode level3;
	        
	        
	      //  System.out.println(mat_tree.get(1));
	        for(int k=0;k<getMaterial().size();k++){	        	
	        	Material matmp = new Material();
	        	matmp=getMaterial().get(k);
	        	level1=new DefaultMutableTreeNode(matmp.getName());
				root.add(level1);	
				
				
				for(int l=0;l<matmp.getArticle(getMaterial().get(k)).size();l++){								
			        	Article artmp = new Article();
			        	artmp= matmp.getArticle(matmp).get(l);
			        	level2=new DefaultMutableTreeNode(artmp.getName());
						level1.add(level2);
						
						for(int m=0;m<artmp.getSize(matmp, artmp).size();m++){								
							Sizes sztmp = new Sizes();
							sztmp= artmp.getSize(matmp, artmp).get(m);
					//	System.out.println(sztmp.getSizename());		   					
							level3=new DefaultMutableTreeNode(sztmp.getSizename());	
							level2.add(level3);
							
			        }		
						
		        }
				
	        }				
									
				return root;
		} //end of getTree()
		
		class Material { // Ebene 1			
			private String materialname;
			private List<Article> material_articles;
			
			public void setName() {	    	
						 		    	
    
		    }	//end setName
			
			public String getName() {
				 return materialname;
			}	//end getName	
		    
		    
		    public List<Article> getArticle(Material mat) { 
		    	material_articles = new ArrayList<Article>();
		    	
		    	try {	
		    		start_database_connection();
		    		article = stmt2.executeQuery("Select "+attribut_ebene2+" from "+tablename+" WHERE "+attribut_ebene1+"='"+mat.getName()+"' GROUP BY  "+attribut_ebene2);
		        	while(article.next()){
		        		Article ar= new Article();
		        		ar.articlename= article.getString(1);	
		        		material_articles.add(ar); 	
		        	}        	
		        	article.close();
		    		stmt2.close();
		    		con.close();	
		      
		        	return material_articles;		        	
				}	// end of try block 		    	
		    	catch (SQLException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
					System.out.println("Fehler"+e);
					return null;		
					
				}	// end of catch block	    	
		    } // end getMaterial()
		} //End Class Material

		class Article {
			
			private String articlename;
			private List<Sizes> article_sizes;
			
			public void setName() {	    						 		    	
    
		    }	//end setName
			
			public String getName() {
				 return articlename;
			}	//end getName
			
			public List<Sizes> getSize(Material mat, Article art) { 
				article_sizes = new ArrayList<Sizes>();
		    	
		    	try {	
		    		start_database_connection();
		    		sizes = stmt3.executeQuery("Select "+attribut_ebene3+" from "+tablename+" WHERE "+attribut_ebene1+"='"+mat.getName()+"' AND "+attribut_ebene2+"='"+art.getName()+"'");
		        	while(sizes.next()){
		        		Sizes sz= new Sizes();
		        		sz.size_for_article= sizes.getString(1);	
		        		article_sizes.add(sz); 	
		        	}        	
		        	sizes.close();
		    		stmt3.close();
		    		con.close();	
		      
		        	return article_sizes;		        	
				}	// end of try block 		    	
		    	catch (SQLException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
					System.out.println("Fehler"+e);
					return null;		
					
				}	// end of catch blo
								
			} 
		}	// End of Class Article	
		class Sizes {
					
					private String size_for_article;
					private String producer;
					private double purchase_price;
					private double selling_price;
					private double maximum_discount; 
					
					public void setName() {	    						 		    	
		    
				    }	//end setName
					
					public String getSizename() {
						 return size_for_article;
					}	//end getSize
					
					public String getProducer() {
						 return producer;
					}	//end getProducer
					
					public double getPurchasePrice() {
						 return purchase_price;
					}	//end getPurchasePrice
					
					public double getSellingPrice() {
						 return selling_price;
					}	//end getSellingPrice
					
					public double getMaximumDiscount() {
						 return maximum_discount;
					}	//end getMaximumDiscount
					
						    	
				    } // end of Class Sizes
					
	

} //End of FILE
 

Marco13

Top Contributor
Sorry, war/bin ein paar Tage weg, aber bevor das so weiterläuft: SO NICHT!!!

Dort werden ja hunderte oder Tausende von DB-Abfragen gemacht :autsch: (Lass' dir ggf. einfach mal VOR jedem executeQuery ein
System.out.println("Mache Abfrage...");
ausgeben)

Ich sollte erwähnen, dass ich mich mit DBs nicht wirklich auskenne - aber dass eine DB-Abfrage teuer ist, und man sie nicht unnötig oft machen sollte, sollte klar sein ;)

Und nochmal: Niemand kann dir die Arbeit abnehmen, das geeignete Datenmodell zu finden. Speziell für Objekte, die irgendwie persistiert (d.h. z.B. in einer DB gespeichert) sind gibt es da viele ausgefeilte Konzepte, angefangen bei Data Access Object ? Wikipedia - aber offenbar (sorry) liegt die Latte hier so tief, dass man auch erstmal einen sehr einfachen, pragmatischen Vorschlag machen kann - nämlich eins der einfachsten Datenmodelle, die es gibt: Eine Liste von Objekten.

Wenn ich das richtig sehe, besteht die DB nur aus EINER Tabelle, richtig? Und die Tabelle beschreibt NUR Artikel, d.h. jede Zeile der Tabelle beschreibt genau einen Artikel, auch richtig? Und die Datenmenge ist so klein, dass sie problemlos auf einmal in den Speicher passt? Dann könnte man (wie gesagt: SEHR pragmatisch) eine Klasse machen, deren Methoden genau den Tabellenspalten entsprechen:
Java:
class Artikel {
      
    public String getName()
    {
        ...
    }

    public String getMaterialString()
    {
        ....
    }

    // Und die ganzen anderen...
    public String getProducer() {...}

}

Dann könnte man mit EINEM Query am Anfang EIN mal ein ResultSet holen, das durchlaufen, und für jede Zeile genau ein "Artikel"-Objekt erstellen.

Wenn man das dann als List<Artikel> vorliegen hat, kann man darauf leicht und schnell (und ohne weitere DB-Abfragen!) weitere Operationen durchführen - z.B. irgendein TreeModel daraus bauen (oder, in einem Zwischenschritt, ein "ausgefeilteres" Datenmodell bauen, wie vorher, unfundiert aus dem Bauch heraus mit der Klasse "Materialart" angedeutet...)

Das hätte, ganz nebenbei, den Vorteil, dass man sowas machen könnte wie
Java:
void doit()
{
    // Das hier ist auskommentiert
    //List<Artikel> list= liesAusDerDB();

    // Hier wird eine Liste mit Test-Artikeln verwendet,
    // mit der ich leicht und schnell Funktionen testen 
    // kann, wie z.B. die Gruppierung von Artikeln nach
    // Material, und durch die ich das ganze außerdem
    // als compilierbares(!) testbares(!) Beispiel in einem
    // Forum posten kann, damit jemand anderes mir 
    // Tipps geben kann, wie ich das mit dem JTree
    // dann später machen könnte...
    List<Artikel> list = erstelleDummy();
    verarbeite(artikel);
}

private static List<Artikel> erstelleDummy()
{
    List<Artikel> list = new ArrayList<Artikel>();
    list.add(new Artikel("Holz", "Grün", "Teuer", 3.14159265));
    list.add(new Artikel("Blech", "Lavendelrosa", "Billich", 39.90));
    ..
    return list;
}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S JTree Elemente nach BaumLevel abspeichern AWT, Swing, JavaFX & SWT 2
S JTree & JComboBox - Elemente übers Fenster hinaus anzeigen AWT, Swing, JavaFX & SWT 9
F JTree: Elemente über ganze Zeile rendern AWT, Swing, JavaFX & SWT 6
S Elemente des JTree unsichtbar? AWT, Swing, JavaFX & SWT 8
F JTree - Schriftfarbe der Elemente in erster Ebene ändern AWT, Swing, JavaFX & SWT 8
M JTree: Selektion der Elemente nicht mehr sichtbar AWT, Swing, JavaFX & SWT 6
P JTree: alle Elemente ausklappen AWT, Swing, JavaFX & SWT 3
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
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
X Swing 2 TreeModel und ein JTree synchronisieren AWT, Swing, JavaFX & SWT 3
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
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
O JTree/TreeModel/DefaultMutableTreeNodes thread safe machen AWT, Swing, JavaFX & SWT 3
J Lazy Loading eine JTree während Scrollen AWT, Swing, JavaFX & SWT 11
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
C Swing JTree und TreeModel AWT, Swing, JavaFX & SWT 15
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
S JTree aus List<File> erstellen AWT, Swing, JavaFX & SWT 8

Ähnliche Java Themen

Neue Themen


Oben