JavaFX BorderPane ins Tree einfügen

iso66

Mitglied
Hallo Leute,
Ich habe ein Problem. Den folgenden Tree, muss ich in einem BordePane anzeigen lassen.

Ich brauche eure Hilfe, bitte.



Java:
				// Tree item
				/*private TreeItem<File> createNode(final File f) {
					return new TreeItem<File>(f) {
						private boolean isLeaf;
						private boolean isFirstTimeChildren = true;
						private boolean isFirstTimeLeaf = true;
						
						@Override public ObservableList<TreeItem<File>> getChildren() {
							if(isFirstTimeChildren){
								isFirstTimeChildren = false;
								super.getChildren().setAll(buildChildren(this));
							}
							return super.getChildren();
						}
					
						@Override public boolean isLeaf() {
							if (isFirstTimeLeaf) {
								isFirstTimeLeaf = false;
					            File f = (File) getValue();
					            isLeaf = f.isFile();
							}
							return isLeaf;
						}
						private ObservableList<TreeItem<File>> buildChildren(TreeItem<File> TreeItem) {
				            File f = TreeItem.getValue();
				            if (f != null && f.isDirectory()) {
				                File[] files = f.listFiles();
				                if (files != null) {
				                    ObservableList<TreeItem<File>> children = FXCollections.observableArrayList();

				                    for (File childFile : files) {
				                        children.add(createNode(childFile));
				                    }

				                    return children;
				                }
				            }

				            return FXCollections.emptyObservableList();
				        }
					};
					
				}*/

Vielen Danke
 

dzim

Top Contributor
Ich seh' einen Haufen von auskommentierten Code, der wohl das Datenmodell deines TreeViews darstellen soll. Wo ist jetzt das Problem?
TreeView<File> in als left|top|right|bottom|center setzen, das Modell in den TreeView einfügen und fertig.

Oder was genau ist hier das Problem? Ich kann auch im Moment die eigentliche Frage (denn so etwas gibt es in deinem Post nicht), nicht erkennen.
 

iso66

Mitglied
Java:
public class Tree{


// Tree item
	@SuppressWarnings("unused")
	private TreeItem<File> createNode(final File f) {
		
		return new TreeItem<File>(f) {
		
		private boolean isLeaf;
		private boolean isFirstTimeChildren = true;
		private boolean isFirstTimeLeaf = true;
						
			@Override 
			public ObservableList<TreeItem<File>> getChildren() {
				if(isFirstTimeChildren){
					isFirstTimeChildren = false;
					super.getChildren().setAll(buildChildren(this));
				}
					return super.getChildren();
			}
					
			@Override
			public boolean isLeaf() {
				if (isFirstTimeLeaf) {
					isFirstTimeLeaf = false;
					File f = (File) getValue();
					isLeaf = f.isFile();
				}
				return isLeaf;
			}
			
			private ObservableList<TreeItem<File>> buildChildren(TreeItem<File> TreeItem) {
				File f = TreeItem.getValue();
				if (f != null && f.isDirectory()) {
					File[] files = f.listFiles();
				    	if (files != null) {
				        ObservableList<TreeItem<File>> children = FXCollections.observableArrayList();

				        	for (File childFile : files) {
				        		children.add(createNode(childFile));
				            }

				        	return children;
				    	}
				}

				return FXCollections.emptyObservableList();
			}
					
		};
				
		
	}
}


hier hab ich es schöner.

Ja dizim ich bekomme, den Code nicht hin, dass ist mein Problem :(
 

dzim

Top Contributor
Welchen Code? Den, wie du den TreeView in die BorderPane einfügst? Oder den, der dir das TreeItem baut? Wo gibt es konkrete Probleme? Was klappt genau nicht?
Dein Post besteht nur aus der Bemerkung, das irgendetwas Probleme macht und etwas Code, aber was das konkrete Problem ist, wie du bisher versucht hast dagegen etwas zu unternehmen, wird nicht deutlich! Bitte näher beschreiben!
 

iso66

Mitglied
Den Code, mit dem ich den TreeView in den BorderPane einfügen. Das ist mein Problem, ich bekomme es einfach nicht hin. Denn Tree anzeigen zu lassen.
Was vielleicht noch interessant sein könnte, ich habe mit den SceneBuilder 2.0 eine MyView.FXML-Datei erstellt. In dem ich den BorderPane benutze, Pos.Center sollte der Tree angezeigt werden.

Hoffe, dass ich nichts vergessen habe.
 

dzim

Top Contributor
Zeig mal das FXML her. Pos.CENTER ist eigentlich Blödsinn. Du setzt es als Center-Node

Code:
<BorderPane>
  <center>
    <TreeView [BorderPane.alignment="CENTER"]>...</TreeView> <!-- das in eckigen Klammern [] ist optional -->
    <!-- hier könnte höchstens noch so was wie <BorderPane.margin> oder so kommen -->
  </center>
</BorderPane>
 

iso66

Mitglied
Java:
<?xml version="1.0" encoding="UTF-8"?>

<?import javafx.scene.input.*?>
<?import javafx.scene.effect.*?>
<?import javafx.scene.paint.*?>
<?import javafx.scene.text.*?>
<?import javafx.scene.control.*?>
<?import java.lang.*?>
<?import javafx.scene.layout.*?>

<BorderPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1">
   <left>
      <ScrollPane prefHeight="200.0" prefWidth="200.0" BorderPane.alignment="CENTER">
         <content>
            <Label text="Tree Main Fix">
               <font>
                  <Font name="System Bold" size="17.0" />
               </font>
            </Label>
         </content>
      </ScrollPane>
   </left>
   <top>
      <MenuBar BorderPane.alignment="CENTER">
        <menus>
          <Menu mnemonicParsing="false" text="File">
            <items>
              <MenuItem mnemonicParsing="false" onAction="#doNew" text="New" />
                  <MenuItem mnemonicParsing="false" onAction="#doOeffne" text="Open">
                     <accelerator>
                        <KeyCodeCombination alt="UP" code="O" control="DOWN" meta="UP" shift="UP" shortcut="UP" />
                     </accelerator></MenuItem>
                  <MenuItem mnemonicParsing="false" onAction="#doSave" text="Save" />
                  <MenuItem mnemonicParsing="false" onAction="#doSaveAs" text="Save As" />
                  <SeparatorMenuItem mnemonicParsing="false" />
                  <MenuItem mnemonicParsing="false" onAction="#doExit" text="Exit" />
            </items>
          </Menu>
          <Menu mnemonicParsing="false" text="Edit">
            <items>
              <MenuItem mnemonicParsing="false" text="Undo" />
                  <MenuItem mnemonicParsing="false" text="Redo" />
                  <SeparatorMenuItem mnemonicParsing="false" />
                  <MenuItem mnemonicParsing="false" text="Cut" />
                  <MenuItem mnemonicParsing="false" text="Copy" />
                  <MenuItem mnemonicParsing="false" text="Delete" />
                  <MenuItem mnemonicParsing="false" text="Paste" />
                  <SeparatorMenuItem mnemonicParsing="false" />
                  <MenuItem mnemonicParsing="false" text="Select All" />
                  <MenuItem mnemonicParsing="false" text="Unselect All" />
            </items>
          </Menu>
          <Menu mnemonicParsing="false" text="View">
            <items>
                  <CheckMenuItem mnemonicParsing="false" text="Line numbers" />
            </items>
          </Menu>
            <Menu mnemonicParsing="false" text="Search">
               <items>
                  <MenuItem mnemonicParsing="false" onAction="#doFind" text="Find" />
                  <MenuItem mnemonicParsing="false" text="Replace" />
               </items>
            </Menu>
            <Menu mnemonicParsing="false" text="Help">
               <items>
                  <MenuItem mnemonicParsing="false" text="About" />
               </items>
            </Menu>
        </menus>
      </MenuBar>
   </top>
   <center>
      <SplitPane dividerPositions="0.4824120603015075" prefHeight="160.0" prefWidth="200.0" BorderPane.alignment="CENTER">
        <items>
          <AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="160.0" prefWidth="100.0">
               <children>
                  <ScrollPane prefHeight="373.0" prefWidth="189.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
                    <content>
                      <AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="200.0" prefWidth="200.0" />
                    </content>
                  </ScrollPane>
                  <Label text="  Tree Variable">
                     <font>
                        <Font name="System Bold" size="17.0" />
                     </font>
                  </Label>
               </children>
            </AnchorPane>
          <AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="160.0" prefWidth="100.0">
               <children>
                  <SplitPane dividerPositions="0.5" layoutX="22.0" layoutY="87.0" orientation="VERTICAL" prefHeight="373.0" prefWidth="203.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
                    <items>
                      <AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="100.0" prefWidth="160.0">
                           <children>
                              <ScrollPane prefHeight="183.0" prefWidth="201.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0" />
                              <Label alignment="BOTTOM_CENTER" text="  Editor">
                                 <font>
                                    <Font name="System Bold" size="17.0" />
                                 </font>
                              </Label>
                           </children>
                        </AnchorPane>
                        <ScrollPane prefHeight="200.0" prefWidth="200.0">
                           <content>
                              <TextFlow prefHeight="200.0" prefWidth="200.0" />
                           </content>
                        </ScrollPane>
                    </items>
                  </SplitPane>
               </children>
            </AnchorPane>
        </items>
      </SplitPane>
   </center>
</BorderPane>
 

dzim

Top Contributor
Ja und wo ist da ein TreeView drin? Vielleicht verstehe ich dich schlicht nur nicht, aber ohne TreeView in der FXML (btw: nicht den FXML - klingt irgendwie schräg... Aber vielleicht ist das nur mein stilistisches Empfinden) wird es schwierig einen Tree generell anzuzeigen. Wo soll denn der Tree angezeigt werden? Links, Mitte, Rechts oder Unten?
 

iso66

Mitglied
Ok, es stimmt was du meinst, ich hab nicht gewusst, dass im SceneBuilder - (TreeView) zu finden ist. Darum hab ich kein TreeView im FXML Code. Ich Teste es jetzt mal mit dem TreeView.
Vielen Danke, bis später :)
 

iso66

Mitglied
Java:
<BorderPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1">
 <left>
      <TreeView prefHeight="200.0" prefWidth="200.0" BorderPane.alignment="CENTER" />
   </left>
   <center>
      <TreeView prefHeight="200.0" prefWidth="200.0" BorderPane.alignment="CENTER" />
   </center>
   <right>
      <SplitPane dividerPositions="0.5" orientation="VERTICAL" prefHeight="200.0" prefWidth="160.0" BorderPane.alignment="CENTER">
        <items>
          <AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="100.0" prefWidth="160.0" />
          <AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="100.0" prefWidth="160.0" />
        </items>
      </SplitPane>
   </right>
</BorderPane>

Dzim hab nun die TreeViews , der nächste schritt wäre dann den Code zu schreiben oder nicht?
 

dzim

Top Contributor
Ja.

Aber:
1) Du brauchst fx:id-Attribute an den notwendigen Nodes, z.B.:
Code:
[...]
<TreeView prefHeight="200.0" prefWidth="200.0" BorderPane.alignment="CENTER" fx:id="treeView" />
[...]
Damit kannst du dann im Controller das Ganze mit
Java:
@FXML private TreeView<File> treeView; // identische Namen!
initialisieren und darauf zugreifen.

2) Du brauchst also auch noch einen Controller, den du mittels fx:controller="my.package.MyController" an dein Root-Element (also die BorderPane) anfügst. Ich denke, dass du das auch über die GUI des SceneBuilder erledigen kannst.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
MiMa BorderPane Seiten ein und ausblenden? AWT, Swing, JavaFX & SWT 16
H JavaFX JavaFX - Scene Builder - BorderPane AWT, Swing, JavaFX & SWT 23
J Resize Node im BorderPane AWT, Swing, JavaFX & SWT 7
J BorderPane Position AWT, Swing, JavaFX & SWT 3
A JavaFX Mittelkomponente im Borderpane skaliert nicht AWT, Swing, JavaFX & SWT 1
O JavaFX HBox und BorderPane.. AWT, Swing, JavaFX & SWT 5
wolfgang63 JavaFX Controls in einer BorderPane funktionieren nicht AWT, Swing, JavaFX & SWT 4
F JavaFX (Tree)TableView korrekt drucken AWT, Swing, JavaFX & SWT 1
4a61766120617274697374 dynamische Tree View AWT, Swing, JavaFX & SWT 2
F Swing Datenmodell in Tree spiegeln ohne Adapterklassen AWT, Swing, JavaFX & SWT 5
T SWT Warum ist mein 1.Tree Node selektiert? AWT, Swing, JavaFX & SWT 11
O Tree path expandieren AWT, Swing, JavaFX & SWT 2
Madlip SWT Tree mit einen Klick alles ausklappen AWT, Swing, JavaFX & SWT 3
J Knotenselect von bestimmten Knoten im Tree AWT, Swing, JavaFX & SWT 2
L SWT tree elemente markieren AWT, Swing, JavaFX & SWT 4
J SWT JFace Tree in Section unsichtbar (Eclipse Forms) AWT, Swing, JavaFX & SWT 5
L SWT Tree reagieren BEVOR selektiert wurde AWT, Swing, JavaFX & SWT 2
S SWT tree collapse AWT, Swing, JavaFX & SWT 4
W SWT Resize Tree-Element AWT, Swing, JavaFX & SWT 3
S Dropdown menu / tree AWT, Swing, JavaFX & SWT 7
P SWT Tree - Keine Selection zulassen AWT, Swing, JavaFX & SWT 4
G Swing Tree wird nicht angezeigt AWT, Swing, JavaFX & SWT 6
B SWT SWT Tree mit mehreren Spalten AWT, Swing, JavaFX & SWT 3
A Swing JTree Tree Node löschen AWT, Swing, JavaFX & SWT 2
K SWT und Tree, wie kann ich TreeItem aus einem Tree entfernen? AWT, Swing, JavaFX & SWT 12
G SWT Tree AWT, Swing, JavaFX & SWT 4
S Tree - ArrayList Zuordnung! AWT, Swing, JavaFX & SWT 13
G Bezeichungen im Tree werden durch . gekürzt? AWT, Swing, JavaFX & SWT 5
G Drag And Drop von Component (List, Tree) zum Desktop AWT, Swing, JavaFX & SWT 2
T TREE AWT, Swing, JavaFX & SWT 3
T Tree AWT, Swing, JavaFX & SWT 2
G tree.setSize tut nicht AWT, Swing, JavaFX & SWT 5
S SWT Tree AWT, Swing, JavaFX & SWT 3
U Baum/Tree nach Benutzer anzeigen AWT, Swing, JavaFX & SWT 3
L Renderer mit nativen komponenten in tabelle / tree / list AWT, Swing, JavaFX & SWT 4
R Tree automatisch öffnen AWT, Swing, JavaFX & SWT 7
N Tree automatisch öffnen AWT, Swing, JavaFX & SWT 2
J [SWT] alle Zellen in einem Tree einzeln selektieren AWT, Swing, JavaFX & SWT 2
S TableTree - Tree nicht in erster Spalte AWT, Swing, JavaFX & SWT 5
R Tree-Struktur in einer DB abspeichern AWT, Swing, JavaFX & SWT 15
R Klick in einem Tree erkennen und auswerten AWT, Swing, JavaFX & SWT 6
F Ermittlung der X- und Y- Koordinaten im Tree bei Tastaturst. AWT, Swing, JavaFX & SWT 5
S [S] custom tree componente AWT, Swing, JavaFX & SWT 8
C tree action AWT, Swing, JavaFX & SWT 8
G Tree und expand eines bekannten Pfades AWT, Swing, JavaFX & SWT 5
F Tree-Knoten programmgesteuert auswählen AWT, Swing, JavaFX & SWT 3
J Tree nur mit Ordner anzeigen? AWT, Swing, JavaFX & SWT 4
W SWT - Tree: Problem mit Double-Click expand AWT, Swing, JavaFX & SWT 5
R Nur Verzeichnisse im Tree? AWT, Swing, JavaFX & SWT 5
G verzeichnis tree erstellen AWT, Swing, JavaFX & SWT 2
V Tree Ausgabe Problem AWT, Swing, JavaFX & SWT 2
T Hintergrundbild einfügen AWT, Swing, JavaFX & SWT 1
S Swing Coding richtig einfügen AWT, Swing, JavaFX & SWT 3
ExceptionOfExpectation MouseListener-Objekte zu den Graphics-Objekten einfügen AWT, Swing, JavaFX & SWT 3
N Bilder auf Button einfügen und mehrmals ändern (ein Button, mehrere ActionListener) AWT, Swing, JavaFX & SWT 2
Ø Ein FXML-File mehrfach einfügen AWT, Swing, JavaFX & SWT 6
G Z Buffer / Depth Buffer in Bufferstrategy einfügen AWT, Swing, JavaFX & SWT 1
H Tabelle in JFrame einfügen AWT, Swing, JavaFX & SWT 1
P Swing Icon einfügen wirft eine Fehlermeldung AWT, Swing, JavaFX & SWT 3
Kirby.exe Bilder in GUI einfügen AWT, Swing, JavaFX & SWT 8
T Bilder bei einem JFrame einfügen AWT, Swing, JavaFX & SWT 4
Hatsi09 Swing JPanel Bild einfügen AWT, Swing, JavaFX & SWT 14
T JFrame Bild einfügen AWT, Swing, JavaFX & SWT 9
K TreeTableView (cellFactory) - wie Daten in Spalten einfügen AWT, Swing, JavaFX & SWT 0
A Swing JPanels dynamisch untereinander einfügen AWT, Swing, JavaFX & SWT 3
L Kalendar als JLabel einfügen AWT, Swing, JavaFX & SWT 3
Q-bert JTextField per Mausklick einfügen AWT, Swing, JavaFX & SWT 3
G Wie Scrollbar einfügen? AWT, Swing, JavaFX & SWT 1
Kanda Sorata Inhalt einer .txt Datei einlesen und in ein Label einfügen (JavaFX) AWT, Swing, JavaFX & SWT 2
D Icon in Menuitem einfügen AWT, Swing, JavaFX & SWT 8
P Jframe Bild einfügen, Hintergrund Farbe ändern, und Button schrift Größe ändern AWT, Swing, JavaFX & SWT 2
MrSnake Bilder aus Unterordner einfügen AWT, Swing, JavaFX & SWT 2
U Java FX Zusätzliches Label per Knopfdruck während der Laufzeit auf Panel einfügen. AWT, Swing, JavaFX & SWT 2
S NetBeans, Panel in Frame einfügen AWT, Swing, JavaFX & SWT 3
F neuen Menüpunkt in jcombobox einfügen AWT, Swing, JavaFX & SWT 1
L Swing Datensätze aus DB in jTable einfügen AWT, Swing, JavaFX & SWT 2
Z Canvas in Frame einfügen. Problem mit 4-Gewinnt AWT, Swing, JavaFX & SWT 1
A Swing Externe Klassen aufrufen und in einem bereits vorhandenen Container einfügen AWT, Swing, JavaFX & SWT 0
GenerationLost Bilder an bestimmten Platz einfügen/Objekte visualisieren AWT, Swing, JavaFX & SWT 1
S Grafik in einer Klassen einfügen/hinzufügen AWT, Swing, JavaFX & SWT 1
D JavaFX Scene Builder 2.0 einfügen einer CheckBoxListCell AWT, Swing, JavaFX & SWT 0
Seikuassi Swing JTextField nimmt kein Einfügen (Strg+V) an AWT, Swing, JavaFX & SWT 4
F Bilder in jFrame einfügen AWT, Swing, JavaFX & SWT 3
M Image in JTable einfügen AWT, Swing, JavaFX & SWT 9
E JavaFX Bild einfügen AWT, Swing, JavaFX & SWT 6
L Zwei String Array in eine Spalte einfügen AWT, Swing, JavaFX & SWT 1
B Swing JPanel in JScrollPane einfügen AWT, Swing, JavaFX & SWT 2
M Bild in JPanel mit Maus einfügen AWT, Swing, JavaFX & SWT 0
G Scrollbar für das Fenster einfügen AWT, Swing, JavaFX & SWT 3
B JAVAFX icon in ComboBox einfügen AWT, Swing, JavaFX & SWT 5
kaoZ Frage zum einfügen von Componenten AWT, Swing, JavaFX & SWT 14
S Swing JTable zusätzliche Spalte mit einer Checkbox einfügen AWT, Swing, JavaFX & SWT 7
M Swing Mit Java in der GUI einen Belegungsplan einfügen AWT, Swing, JavaFX & SWT 23
H Swing Hintergrundbild in einen JFrame einfügen AWT, Swing, JavaFX & SWT 7
Kenan89 3D Models aus anderen Spielen in eigene einfügen AWT, Swing, JavaFX & SWT 3
K JEditorPane Text einfügen AWT, Swing, JavaFX & SWT 4
S Ein externes Bild in ein JFrame einfügen AWT, Swing, JavaFX & SWT 8
A Textfeld nachträglich einfügen AWT, Swing, JavaFX & SWT 4
C Eigenes Hintergrundbild einfügen AWT, Swing, JavaFX & SWT 6
E Button einfügen AWT, Swing, JavaFX & SWT 6

Ähnliche Java Themen

Neue Themen


Oben