JavaFx. TreeView. Как правильно создать?

222
21 июля 2018, 23:30

Есть класс:

import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;
public class ClientIO extends Application {
@Override
public void start(Stage primaryStage) throws Exception{
Parent root = FXMLLoader.load(getClass().getResource("GUI.fxml"));
primaryStage.setTitle("client");
primaryStage.setMinHeight(600);
primaryStage.setMinWidth(620);
primaryStage.setScene(new Scene(root, 620, 600));
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
Также есть класс, в котором описано весь GUI приложения:
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.TextArea;
import javafx.scene.control.TextField;
import javafx.stage.DirectoryChooser;
import javafx.stage.Stage;
import java.io.*;
import java.net.Socket;
import java.util.Date;
public class GUI {
@FXML
private Button connect;
...
@FXML
private TreeView<String> localtree;
public void serverConnect(ActionEvent actionEvent) {
TreeItem<String> rootItem = null;
    if (dir != null) {
        localpath.setText(dir.getAbsolutePath());
        rootItem = new TreeItem<> (dir.getAbsolutePath());
        rootItem.setExpanded(true);
        for (int i = 1; i < 6; i++) {
            TreeItem<String> item = new TreeItem<> ("Message" + i);
            rootItem.getChildren().add(item);
        }
    }
    localtree = new TreeView<> (rootItem);
 }

Ну собственно проблема с отрисовкой TreeView. Он не отрисовывается. Вроде как нужно опять указать Stage. Подскажите каким образом это поправить?

Answer 1

Проблема у вас в последней строчке в методу serverConnect:

localtree = new TreeView<> (rootItem);

У вас localtree уже существует ( помечен аннотацией @FXML) и пересоздавать его не надо.

Если вам необоходимо просетать рутовый айтем, то делать надо так:

localtree.setRoot(rootItem);
READ ALSO
Spring Data. Как создать been из интерфейса?

Spring Data. Как создать been из интерфейса?

Хочу научиться использовать Spring Data без Spring Boot

184
Java EE 8. Не работает валидатор

Java EE 8. Не работает валидатор

Не работает валидатор, те

212
Spring || JEE7?

Spring || JEE7?

Очень прошу человека с большим опытом ответить мне на вопросСовсем запутался с Enterprise составляющей Java

242
Пустое значение в SharedPreferences Android

Пустое значение в SharedPreferences Android

Проблема такова: почему у меня запись пустого значения? Код для записи в память рабочийПроверял

250