JTree in JTable darstellen und selectieren

Status
Nicht offen für weitere Antworten.

$R0ckl4nd$

Mitglied
Hallo erstmal,
dies mein erster Beitrag also wenn ich irgendwelche Fehler mache seit nicht al zu böse.

Das problem ist, dass ich den Jtree nicht auf und zu machen kann, die Anzeige der Werte funktiniert bereits.




Code:
public class MyCell extends DefaultListCellRenderer  { 

    
   private JTree myTree=new JTree(); 
    
   private static final long serialVersionUID = 1L; 

   DefaultListCellRenderer defListRenderer = new DefaultListCellRenderer(); 

   public MyCell() { 
       
      myTree.setCellRenderer(new MyTree()); 

   } 

   public Component getListCellRendererComponent(JList list, Object value, 
         int index, boolean isSelected, boolean cellHasFocus) { 
    
      super.getListCellRendererComponent(list,value,index,isSelected,cellHasFocus); 
       
      if (value instanceof JTree) { 
          
         JTree baum = (JTree) value; 
       
         value = baum.getModel().getRoot(); 

         DefaultMutableTreeNode root2 = (DefaultMutableTreeNode) value; 
         myTree.getSelectionModel().setSelectionMode(TreeSelectionModel.DISCONTIGUOUS_TREE_SELECTION); 
         //((DefaultTreeSelectionModel)getSelectionModel()).setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION); 
         myTree.getSelectionModel().addTreeSelectionListener(new TreeSelectionListener(){ 

               public void valueChanged(TreeSelectionEvent e) { 
                  System.out.println("Test"); 
                   
               } 
                
             }); 

//          ((DefaultTreeSelectionModel)getSelectionModel()).addTreeSelectionListener(new TreeSelectionListener(){ 
// 
//            public void valueChanged(TreeSelectionEvent e) { 
//               System.out.println("Test"); 
//                
//            } 
//             
//          }); 
                             
          ((DefaultTreeModel)myTree.getModel()).setRoot(root2); 
                   
         return myTree; 
      } 
/* 
      if (value instanceof DefaultMutableTreeNode) { 
         System.out.println("MutableTreeNode"); 

         DefaultMutableTreeNode root = (DefaultMutableTreeNode) value; 

         ((DefaultTreeModel) getModel()).setRoot(root); 

         return this; 
      } 
*/ 
      return defListRenderer.getListCellRendererComponent(list, value, index, 
            isSelected, cellHasFocus); 
   } 

}


das ist der ListcellRenderer

Code:
public class MyTree extends DefaultTreeCellRenderer { 

   DefaultTreeCellRenderer defTreeRenderer = new DefaultTreeCellRenderer(); 

   public MyTree(){ 
      super(); 
   } 
    
    
   public Component getTreeCellRendererComponent(JTree tree, Object value, 
         boolean selected, boolean expanded, boolean leaf, int row, 
         boolean hasFocus) { 

       
      super.getTreeCellRendererComponent(tree, value, selected, expanded, leaf, row, hasFocus); 
       
      if (value instanceof DefaultMutableTreeNode) { 

         DefaultMutableTreeNode root = new DefaultMutableTreeNode(); 

         String Text = ""; 

         root = (DefaultMutableTreeNode) value; 

         Text = (String) root.getUserObject(); 

         value = Text; 

      } 

      return defTreeRenderer.getTreeCellRendererComponent(tree, value, 
            selected, expanded, leaf, row, hasFocus); 
   } 
}


das ist der TreeCellRenderer

also ich habe mich schon auf den Kopf gestellt mir die Threads zu JList/JTree durchgelesen und dabei keine Lösung gefunden.

Problem>Es können keine Actionen am Tree ausgeführt werden.

Wenn ihr mir helfen könntet wäre das echt super

Mfg
$R0ckl4nd$


Ps. Ich muss die JList verwenden!!!!!!(Für die Arbeit).
 

$R0ckl4nd$

Mitglied
Sorry Alarenal aber der Mouslistener hilft mir nicht weiter.

Also ich habe jetzt einen TreeCellEditor


Code:
public class MyTreeCellEditor extends DefaultTreeCellEditor implements TreeCellEditor{

	public MyTreeCellEditor(JTree tree, DefaultTreeCellRenderer renderer) {
		super(tree, renderer);
		// TODO Auto-generated constructor stub
	}

	protected EventListenerList listenerList = new EventListenerList();
	
	
	public Component getTreeCellEditorComponent(JTree tree, Object value, boolean isSelected, boolean expanded, boolean leaf, int row) {
		// TODO Auto-generated method stub
		return null;
	}

	public Object getCellEditorValue() {
		// TODO Auto-generated method stub
		return null;
	}

	public boolean isCellEditable(EventObject anEvent) {
		// TODO Auto-generated method stub
		return false;
	}

	public boolean shouldSelectCell(EventObject anEvent) {
		// TODO Auto-generated method stub
		return false;
	}

	public boolean stopCellEditing() {
		// TODO Auto-generated method stub
		return false;
	}

	public void cancelCellEditing() {
		// TODO Auto-generated method stub
		
	}

	public void addCellEditorListener(CellEditorListener l) {
		listenerList.add(CellEditorListener.class,l);
		
	}

	public void removeCellEditorListener(CellEditorListener l) {
		listenerList.remove(CellEditorListener.class,l);
		
	}

	

}

eingebaut ist er im Constructor von dem ListCellRenderer

Code:
public class MyCell extends JTree implements ListCellRenderer {
	
	private static final long serialVersionUID = 1L;

	DefaultListCellRenderer defListRenderer = new DefaultListCellRenderer();

	public MyCell() {
		
		this.setCellRenderer(new MyTree());
		this.setCellEditor(new MyTreeCellEditor(this,new DefaultTreeCellRenderer()));
	}

es geht aber immer noch nicht ???:L
 
B

Beni

Gast
AlArenal hat gesagt.:
Tse... und dabei hab ich ihm doch gerade per PN gesagt, wie es gehen sollte ;)
Äh, er hat mich schon angeschrieben, und als ich ihm sage, er solle sich ans gesammte Forum wenden, meinte er "er weiss nicht, wie das geht"?

Ich sage nur: schlechter Anfang :bloed:
 

$R0ckl4nd$

Mitglied
Ich finde bei der Jlist keine CellEditor, den es jedoch bei dem JTable gibt,

kann es sein, dass ich daher überhaupt garkeine möglichkeit habe die Listener zu aktivieren ?

Oder reagiere ich bei JList auf die "setDataListener()" Methode diese liefert mir ja Veraenderungen, wie es auch die Editor klasse tut.

JTable=CellEditor
JTable=CellEditor

*******************************
JList=CellRenderer
JList!=CellEditor
*******************************

JTree=CellRenderer
JTree=CellEditor


Ist die Selection des JTrees trotzdem möglich ?
über den JTreeCellEditor und fehlt mir so zusagen die Schnittstellen zwischen den beiden Componenten ?



????? :?:
 
B

Beni

Gast
Eine JList hat keinen Editor, du kannst höchstens direkt der JList irgendwelche MouseListener hinzufügen, und darauf reagieren. Die Events müsstest du in das Koordinatensystem des Baumes umrechnen, und dort dann weiterverarbeiten... ein ziemliches Gefummel, auf das ich mich nicht einlassen würde.

Wäre es nicht einfacher, einen einzigen Baum zu nehmen? Bei einem JTree kann die Wurzel versteckt werden; es sieht dann so aus, als würden mehrere Bäume angezeigt werden (siehe "JTree.setRootVisible").

Oder halt einfach mehrere Instanzen von JTree nehmen. Die könnte man auch untereinander auf irgendeinem Panel auflisten (die Grösse des Panels müsste man wohl immer wieder neu berechnen, aber so schwierig ist das nicht).
 

AlArenal

Top Contributor
@beni:

Das mit dem Mouselistener und dem Umrechnen hatte ich ihm auch vorgeschlagen. Die JList ist seinen Worten nach zwiingende Anforderung. Vielleicht würde man klarer sehen, wenn die genaue Aufgabenstellung bekannt wäre.
 

$R0ckl4nd$

Mitglied
Guten Morgen und glück auf für das Deutscheteam ;)

Also kann ich von der Struktur her in die JList nicht die Listener des JTrees einfügen.

Dann werde ich jetzt mal weiter an der Idee von Alarenal arbeiten.


Aufgabenstellung:
Ich soll an einem LogAnalyseTool für JXFS weiterarbeiten ohne Veränderungen vorzunehmen.

Der Vorgänger hat allerdings eine JList verwendet.

Ich lese also ein Trace von einem Gerät z.B ein und verarbeite die Inhalte wenn ich eine JxfsStruktur finde wandle ich

die Daten per JDOM in XML um wenn nicht wird der Inhalt in einem String gespeichert.

Hinterher beim Filtern, habe ich dann Xml Dokumente die ich als JTree darstelle

und die Strings die in die JList automatisch als JLabel eingefügt werden.


Das Darstellen des Jtree is auch kein Problem da ich einfach den Renderer der JList und den Renderer des JTrees überschreibe.

Bloss das aktivieren der Listener stellt ein Problem da, da der JList keinen CellEditor hat.
Aber ich werde jetzt erstmal versuchen mir einen eigenen CellEditor für die JList zu schreiben das sollte ja möglich sein.

:###
 

AlArenal

Top Contributor
Ich würde lügen, wenn ich sagte, das ich ich diese Beschreibung in Gänze verstehe. Liest sich recht konfus und mir wird nicht klar, warum es nun eine JList sein muss. Wo steth geschrieben, dass alle Daten in einem TreeModel vom gleichen Typ sein müssen? Ich kann beliebig beispielsweise in der ersten Ebene eigene Objekte oder Strings, oder sonstwas reinknallen und diese können als Unterstruktur XMl enthalten.

Wenn der Vorgänger eh schon was-weiß-ich.nicht in eine JList gepackt hat, könnte man ja auch drüber nachdenken die XML-Anzeige (JTree) daneben oder dadrunter zu platzieren und über einen SelectionListener auf der die JList zu aktualisieren.

Aber ich maga uch daneben liegen, da ich wie gesagt aus deiner konfus zu lesenden Beschreibung nicht schlau werde. Nochwas: Dieses Forum basiert nicht auf einer Textverarbeitung für MS-DOS, du musst also nicht manuell ständig die Zeilen mit Returns umbrechen ;)
 

$R0ckl4nd$

Mitglied
lol

Sorry ne Freundin meiner Seits hatte Gestern Geburtstag, dass heisst bis 2 Uhr Party(mit Coktails) deswegen bin ich heute ein wenig Confused.

mhh ich kann in die JList alles rein knallen kein Problem er stellt auch alles super da,
bloss Listener das geht nicht.
Ich glaube einen eigenen CellEditor schreiben macht auch keinen Sinn, da ich ihn ja nicht per MyJList.setCellEditor setzen kann.

Greetz
 

$R0ckl4nd$

Mitglied
Mhh den JTree darunter legen wäre eine Möglichkeit aber das würde natürlich das Layout ganz schön verändern ich probiere es nochmal mit dem MouseListener
 

$R0ckl4nd$

Mitglied
So Jungs schönes We, ich gehe jetzt Deutschland gucken.

Und ich habe ein Beispiel gefunden für einen ListCellEditor den werde ich versuchen einzubinden.

:D
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
Z Swing Drag&Drop zwischen JTable und JTree AWT, Swing, JavaFX & SWT 4
C Drag an Drop vom JTree zur JTable AWT, Swing, JavaFX & SWT 4
C PictureViewer mit JTree und JTable AWT, Swing, JavaFX & SWT 2
J JTable und JTree wollen nicht! AWT, Swing, JavaFX & SWT 3
K JTree in JTable AWT, Swing, JavaFX & SWT 3
L Verzeichnisse aus JTree in JTable anzeigen AWT, Swing, JavaFX & SWT 2
S JTree in einer JTable-Zelle AWT, Swing, JavaFX & SWT 6
V JTree erneuern = JTable erneuern? 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
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
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
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
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
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
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

Ähnliche Java Themen

Neue Themen


Oben