Есть следующий класс:
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 Button disconnect;
private DirectoryChooser directoryChooser;
public void serverConnect(ActionEvent actionEvent) {
Stage stage = (Stage)rootdir.getScene().getWindow();
File dir = directoryChooser.showDialog(stage);
if (dir != null) {
localpath.setText("RootDir!");
}
}
public void serverDisconnect(ActionEvent actionEvent) {
}
}
В методе второго класса хочу вызвать DirectoryChooser для указания директории, но ловлю ошибку. Как я понял я неправильно получаю и передаю ссылку на объект Stage, но пока не понимаю как исправить. Подскажите каким образом реализовать вызов DirectoryChooser.
Разобрался. Сделал directoryChooser локальной переменной. В итоге получился код:
Stage stage = (Stage)rootdir.getScene().getWindow();
DirectoryChooser directoryChooser = new DirectoryChooser();
File dir = directoryChooser.showDialog(stage);
if (dir != null) {
localpath.setText(dir.getAbsolutePath());
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Стараюсь понять как работает рекурсияВот пример как перемножить два числа с помощью цикла:
Имеется класс WorkoutDetailFragment который наследуется от FragmentПри попытке замены этого фрагмента выводится ошибка
Хочу научиться использовать Spring Data без Spring Boot