Swing JTree wird nicht angezeigt

Status
Nicht offen für weitere Antworten.

Shalimar

Mitglied
So, ich glaub eh, ich hab hier totale Wurst verzapft....
Aber wir sollen jedenfalls einen XML-Editor erstellen, der links noch ne TreeView-Komponente hat. Es geht jetzt erstmal nur um die GUI. Mein Menü ist noch nicht fertig, also kann das erstmal außer Acht gelassen werden. Und mein geplanter TreeView ist jetzt auch erstmal nur nen Test. Worauf ich eigentlich hinaus will, ist, dass der links eben nicht angezeigt wird, sondern nur ein ganz schmaler Streifen da ist:

Code:
package xmlEditor;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.TreeSelectionModel;

public class GUI

{

	JTextArea textArea;
	JMenuBar menuBar; JMenu menu; JMenuItem öffnen; JMenuItem speichern;
	JTree treeView;
	
	
	
	public JMenuBar createMenuBar()
	{
		menuBar = new JMenuBar();
		menu = new JMenu("Datei");
		menu.setMnemonic(KeyEvent.VK_A);
        menu.getAccessibleContext().setAccessibleDescription(
                "The only menu in this program that has menu items");
        menuBar.add(menu);
        öffnen = new JMenuItem("Öffnen", KeyEvent.VK_T);
        öffnen.setAccelerator(KeyStroke.getKeyStroke(
                KeyEvent.VK_1, ActionEvent.ALT_MASK));
        öffnen.getAccessibleContext().setAccessibleDescription(
                "This doesn't really do anything");
        menu.add(öffnen);
        speichern = new JMenuItem("Speichern", KeyEvent.VK_T);
        speichern.setAccelerator(KeyStroke.getKeyStroke(
                KeyEvent.VK_1, ActionEvent.ALT_MASK));
        speichern.getAccessibleContext().setAccessibleDescription(
                "This doesn't really do anything");
        menu.add(speichern);
        
        return menuBar;
	}
	
	public JTree createJTree()
	{
		treeView = new JTree();
	    DefaultMutableTreeNode parent = new DefaultMutableTreeNode("Color", true);
	    DefaultMutableTreeNode black = new DefaultMutableTreeNode("Black");
	    DefaultMutableTreeNode blue = new DefaultMutableTreeNode("Blue");
	    DefaultMutableTreeNode nBlue = new DefaultMutableTreeNode("Navy Blue");
	    DefaultMutableTreeNode dBlue = new DefaultMutableTreeNode("Dark Blue");
	    DefaultMutableTreeNode green = new DefaultMutableTreeNode("Green");
	    DefaultMutableTreeNode white = new DefaultMutableTreeNode("White");
	    parent.add(black);
	    parent.add(blue);
	    blue.add(nBlue);
	    blue.add(dBlue);
	    parent.add(green );
	    parent.add(white);
	    JTree tree = new JTree(parent);
	    treeView.add(tree);
	    
	    
	    return treeView;
	}
	
	
	
    public Container createContentPane()
    {
    	JFrame xmlEditor = new JFrame ("XML Editor");
		Container inhalt = xmlEditor.getContentPane();
		inhalt.setLayout (new BorderLayout() );
		
		int w = Toolkit.getDefaultToolkit().getScreenSize().width;
		int h = Toolkit.getDefaultToolkit().getScreenSize().height;
		xmlEditor.setSize(w, h);
		xmlEditor.setVisible(true);
		
		textArea = new JTextArea();
	    JScrollPane sptextArea = new JScrollPane();
	    sptextArea.setViewportView(textArea);
	    
	    JScrollPane sptreeView = new JScrollPane();
	    sptreeView.setViewportView(treeView);
	    
	    inhalt.add(menuBar, BorderLayout.NORTH);
	    inhalt.add(sptextArea, BorderLayout.CENTER);
	    inhalt.add(sptreeView, BorderLayout.WEST);

	    return xmlEditor;
    }
	
	
    private static void createAndShowGUI() 
    {
        //Create and set up the window.
        JFrame xmlEditor = new JFrame("XML Editor");
        xmlEditor.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        //Create and set up the content pane.
        GUI demo = new GUI();
        xmlEditor.setJMenuBar(demo.createMenuBar());
        xmlEditor.setContentPane(demo.createContentPane());

    }

    public static void main(String[] args) 
    {
        //Schedule a job for the event-dispatching thread:
        //creating and showing this application's GUI.
        javax.swing.SwingUtilities.invokeLater(new Runnable() 
        {
            public void run() 
            {
                createAndShowGUI();


		
		

            }
        });
    }
}

Ich frage mich nun, wie man den denn dann in dem Frame angezeigt bekommen...
Könnte sein, dass der hier:
Code:
//Create and set up the content pane.
        GUI demo = new GUI();
        xmlEditor.setJMenuBar(demo.createMenuBar());
        xmlEditor.setContentPane(demo.createContentPane());
noch irgendwie mit angegeben werden muss? Ich hab jetzt aber in der API nichts gefunden, was mir weiterhilft...
 
S

SlaterB

Gast
niemand ruft
createJTree();
auf


und
setVisible(true);
erst am Ende nach Einfügen aller Komponenten aufrufen

edit:
du erzeugst übrigens zwei JFrame und fügst sie ineinander ein, das geht nicht gut
 
Zuletzt bearbeitet von einem Moderator:

Shalimar

Mitglied
Naja, ich sag ja, ich hab Wurst verzapft ;-)

Leider habe ich - wie unschwer zu erkennen sein dürfte - von JTrees null Ahnung.
Ich hab jetzt die Abänderungen bzgl. des doppelten Frames vorgenommen und setVisible ans Ende gesetzt. Leider weiß ich mit dem JTree immer noch nicht weiter. Tutorials haben mir bisher auch keine Lösung gebracht. Egal was ich mache, der Tree wird mir nicht angezeigt.

Ich poste einfach nochmal meinen aktuellen Code:

Code:
package xmlEditor;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.JTree;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.TreeNode;

public class GUI2

{

	JTextArea textArea;
	JMenuBar menuBar; JMenu menu; JMenuItem öffnen; JMenuItem speichern;
	static JTree treeView;
	JScrollPane sptextArea, sptreeView;	
	
	
	public JMenuBar JMenuBar()
	{
		menuBar = new JMenuBar();
		menu = new JMenu("Datei");
		menu.setMnemonic(KeyEvent.VK_A);
        menu.getAccessibleContext().setAccessibleDescription(
                "The only menu in this program that has menu items");
        menuBar.add(menu);
        öffnen = new JMenuItem("Öffnen", KeyEvent.VK_T);
        öffnen.setAccelerator(KeyStroke.getKeyStroke(
                KeyEvent.VK_1, ActionEvent.ALT_MASK));
        öffnen.getAccessibleContext().setAccessibleDescription(
                "This doesn't really do anything");
        menu.add(öffnen);
        speichern = new JMenuItem("Speichern", KeyEvent.VK_T);
        speichern.setAccelerator(KeyStroke.getKeyStroke(
                KeyEvent.VK_1, ActionEvent.ALT_MASK));
        speichern.getAccessibleContext().setAccessibleDescription(
                "This doesn't really do anything");
        menu.add(speichern);
        
        return menuBar;
	}
	
	public JTree JTree()
	{
	
	    DefaultMutableTreeNode parent = new DefaultMutableTreeNode("Color", true);
	    DefaultMutableTreeNode black = new DefaultMutableTreeNode("Black");
	    DefaultMutableTreeNode blue = new DefaultMutableTreeNode("Blue");
	    DefaultMutableTreeNode nBlue = new DefaultMutableTreeNode("Navy Blue");
	    DefaultMutableTreeNode dBlue = new DefaultMutableTreeNode("Dark Blue");
	    DefaultMutableTreeNode green = new DefaultMutableTreeNode("Green");
	    DefaultMutableTreeNode white = new DefaultMutableTreeNode("White");
	    parent.add(black);
	    parent.add(blue);
	    blue.add(nBlue);
	    blue.add(dBlue);
	    parent.add(green );
	    parent.add(white);
	    JTree tree = new JTree(parent);
	    treeView.add(tree);
	    tree.setSize(300, 600);
	    tree.setVisible(true);
	    
	    return treeView;
	}
	

	public Container createContentPane()
    {
    	JPanel contentPane = new JPanel(new BorderLayout());
    	contentPane.setOpaque(true);
		
		textArea = new JTextArea();
		textArea.setEditable(true);
	    sptextArea = new JScrollPane(textArea);
	    
	    sptreeView = new JScrollPane(treeView);
	    
	    contentPane.add(menuBar, BorderLayout.NORTH);
	    contentPane.add(sptextArea, BorderLayout.CENTER);
	    contentPane.add(sptreeView, BorderLayout.WEST);

	    return contentPane;
    }
	
	
    private static void createAndShowGUI() 
    {
        //Create and set up the window.
        JFrame xmlEditor = new JFrame("XML Editor");
		xmlEditor.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        //Create and set up the content pane.
        GUI demo = new GUI();
        xmlEditor.setJMenuBar(demo.JMenuBar());
        xmlEditor.setContentPane(demo.createContentPane());
        
        //Display the Window
        int w = Toolkit.getDefaultToolkit().getScreenSize().width;
		int h = Toolkit.getDefaultToolkit().getScreenSize().height;
	    xmlEditor.setSize(w, h);
		xmlEditor.setVisible(true);

    }

    public static void main(String[] args) 
    {
        //Schedule a job for the event-dispatching thread:
        //creating and showing this application's GUI.
        javax.swing.SwingUtilities.invokeLater(new Runnable() 
        {
            public void run() 
            {
                createAndShowGUI();	

            }
        });
    }
}

Ich weiß, dass der wahrscheinlich furchtbar ist...
 
S

SlaterB

Gast
niemand ruft
createJTree();
auf

topaktuell zu deinem neuen Code:

niemand ruft [die Methode]
JTree();
auf


nichtausgeführter Code hat keine Auswirkung auf ein Programm

--------

JTree tree = new JTree(parent);
treeView.add(tree);


treeView ist auch ein JTree,
JTree.add(JTree) ist bestimmt nicht so gut
 

Shalimar

Mitglied
Hm, okay, sehe ich ein.
Aber hinbekommen tu ich es trotzdem nicht.
Ich sehe jetzt zum Beispiel keinen Unterschied zwischen meiner JMenuBar()-Methode und der JTree()-Methode, das Menü ist aber da...
 
S

SlaterB

Gast
> xmlEditor.setJMenuBar(demo.JMenuBar());
hier wird JMenuBar() aufgerufen

vs

[.....................]
hier wird JTree() nicht aufgerufen

> new JScrollPane(treeView);
fragt nur das Klassenattribut ab, triggert aber keinen magischen Methodenaufruf oder so
 

Shalimar

Mitglied
Ah, blöd. Klar, ich hab ja erst in meinem ersten Post noch gefragt, ob da

xmlEditor.setJMenuBar(demo.createMenuBar());
xmlEditor.setContentPane(demo.createContentPane());

nicht noch was fehlt.

Aber ich muss einfach ganz blöd fragen, womit ich das denn nun aufrufe, weils bei mir nichts wie setJMenuBar nur eben für Trees gibt...
 
S

SlaterB

Gast
> sptreeView = new JScrollPane(treeView);

sptreeView = new JScrollPane(JTree());

oder deutlich schlechter

JTree()
sptreeView = new JScrollPane(treeView);

--------

generell Methoden klein schreiben!
 

Shalimar

Mitglied
Ah, OMG, Dankeschön!!!
War mal wieder nicht einfach mit mir ;-)

Ah, ja und Danke nochmal für den Hinweis mit den Methoden.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
I JTree wird nicht angezeigt AWT, Swing, JavaFX & SWT 3
L Swing JTree wird nicht selektiert AWT, Swing, JavaFX & SWT 2
S Swing JTree wird nicht angezeigt AWT, Swing, JavaFX & SWT 3
G JTree wird nicht mehr geleert (deleteAllEntries) AWT, Swing, JavaFX & SWT 3
G JTree Element wird nicht markiert AWT, Swing, JavaFX & SWT 2
C JTree per code selektierte Node wird nicht farbig hinterlegt AWT, Swing, JavaFX & SWT 2
C JTree wird nicht aktualisiert AWT, Swing, JavaFX & SWT 3
DeeDee0815 Inhalt von JTree wird nicht angezeigt. AWT, Swing, JavaFX & SWT 6
M JTree: Tooltip wenn Text nicht vollständig angezeigt wird AWT, Swing, JavaFX & SWT 3
S JTree wird nicht mehr gezeichnet AWT, Swing, JavaFX & SWT 4
M JButton wird von JTree überdeckt AWT, Swing, JavaFX & SWT 4
J Swing Lazy Loading in JTree wenn gescrollt wird AWT, Swing, JavaFX & SWT 3
H JTree - nach Auswahl aus JFileChooser wird nur der erste Knoten angezeigt AWT, Swing, JavaFX & SWT 3
A JTree wird erst nach Klick aktualisiert AWT, Swing, JavaFX & SWT 2
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
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
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
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
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
J JTree AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen


Oben