Я пытаюсь создать программу, которая будет читать список фильмов из текстового файла и отображать их в textArea, но всякий раз, когда я вызываю функцию toString (), чтобы установить текст в textArea для списка фильмовничего не появляетсяЯ создаю свой MovieCatalog в нужном месте?Есть ли лучший способ сделать это?У меня есть класс Main и класс Controller для моего документа fxml, который я создаю с помощью компоновщика сцены.Мои классы фильмов находятся в пакете "movies", который импортируется в мой контроллер.
Я создал классы для фильмов и каталог фильмов и проверил их функциональность в файле тестера, так что я знаюпроблема не с этим кодом.Мой графический интерфейс также отлично работает, если я использую простые операторы печати вместо toString ().
MainWindowController.java
package application;
import movies.*;
import javafx.fxml.FXML;
import javafx.scene.control.*;
public class MainWindowController
{
//Views
@FXML TextArea movieListArea;
private Main main;
private MovieCatalog movieList = new MovieCatalog();
public void setMain(Main main)
{
this.main = main;
movieList.initializeMovieList("Movies.txt");
}
public void shuffleButton()
{
movieListArea.setText(movieList.toString());
}
}
Main.java
package application;
import java.io.IOException;
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.stage.Stage;
import javafx.scene.Scene;
import javafx.scene.layout.*;
public class Main extends Application
{
private Stage mainStage;
@Override
public void start(Stage mainStage)
{
this.mainStage = mainStage;
mainWindow();
}
public void mainWindow()
{
try
{
FXMLLoader loader = new FXMLLoader(Main.class.getResource("MainWindowView.fxml"));
AnchorPane pane = loader.load();
MainWindowController mainWindowController = loader.getController();
mainWindowController.setMain(this);
Scene scene = new Scene(pane);
mainStage.setScene(scene);
mainStage.setTitle("Movie Program");
mainStage.show();
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void main(String[] args)
{
launch(args);
}
}
Если язамените movieListArea.setText(movieList.toString());
на movieListArea.setText("Hi");
, тогда "Hi" выдаст отлично.Я предполагаю, что что-то не так с инициализацией моего каталога.Однако я не уверен, почему, поскольку код отлично работает, когда я запускаю простую тестовую программу в окне cmd.