是否可以使用ArrayList中的对象在JavaFx和Scene Builder中设置标签和单选按钮?

我正在尝试创建一个多选电影游戏,其中电影出现在标签中,并且演员与该电影匹配,并且3个randoms被设置为单选按钮。 我在网上找到的每个示例或教程都向我展示了如何在不实现已编写的任何类或对象的情况下使用JavaFx和Scene Builder。 我有一个名为MovieSet的类,它接收电影的Arraylist,我也和演员一样。 但是,所有在线教程都没有说明是否可以为这些arraylist设置标签和单选按钮。

是否有可能做到这一点? 如果是这样,怎么办呢?

我使用for循环迭代movieList,但它告诉我它找不到movieList的符号

public static void displayMovies(ArrayList movieList) { for (int x = 0; x < movieList.size(); x++) { Movie movie = movieList.get(x); System.out.printf("%s", movie.toString()); } } 

这是我的控制器。 我很抱歉。 这是我第一次使用JavaFX和

 public class FXMLDocumentController implements Initializable { @FXML private Label movielabel; @FXML private void handleButtonAction(ActionEvent event) { } @Override public void initialize(URL url, ResourceBundle rb) { MovieSet movie = new MovieSet(); this.movielabel.getLabelFor(MovieSet.displayMovies(movieList)); } } 

此示例应用程序是处理多项选择问答应用程序的一般方法。 代码中的评论。

主类

 import javafx.application.Application; import javafx.fxml.FXMLLoader; import javafx.scene.Parent; import javafx.scene.Scene; import javafx.stage.Stage; /** * * @author blj0011 */ public class MultipleChoiceGameExample extends Application { @Override public void start(Stage stage) throws Exception { Parent root = FXMLLoader.load(getClass().getResource("FXMLDocument.fxml")); Scene scene = new Scene(root); stage.setScene(scene); stage.show(); } /** * @param args the command line arguments */ public static void main(String[] args) { launch(args); } } 

调节器

 import java.net.URL; import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.ResourceBundle; import javafx.event.ActionEvent; import javafx.fxml.FXML; import javafx.fxml.Initializable; import javafx.scene.control.Alert; import javafx.scene.control.Button; import javafx.scene.control.Label; import javafx.scene.control.TextArea; /** * * @author blj0011 */ public class FXMLDocumentController implements Initializable { @FXML private Label lblQuestionNumber; @FXML private TextArea taQuestionDisplay; @FXML private Button btnAnswer1, btnAnswer2, btnAnswer3, btnAnswer4, btnNextQuestion; List questions; int currentQuestion = 0; @Override public void initialize(URL url, ResourceBundle rb) { //Get Questions from Database or what ever source you use FakeDatabaseHandler fakeDatabaseHandler = new FakeDatabaseHandler(); questions = fakeDatabaseHandler.getQuestions(); //Shuffle the questions Collections.shuffle(questions); //Load first question lblQuestionNumber.setText("Question 1 of " + questions.size()); loadQuestion(questions.get(currentQuestion)); } @FXML public void handleBtnNextQuestion(ActionEvent actionEvent) { currentQuestion++; if (currentQuestion < questions.size()) { lblQuestionNumber.setText("Question " + (currentQuestion + 1) + " of " + questions.size()); loadQuestion(questions.get(currentQuestion)); } else { Alert alert = new Alert(Alert.AlertType.WARNING); alert.setTitle("Game Over Alert"); alert.setContentText("There are no more questions!"); alert.showAndWait(); } } public void loadQuestion(Question question) { taQuestionDisplay.setText(question.getQuestion());//Set the question List choices = question.getIncorrectAnswers();//Get the incorrect answers choices.add(question.getCorrectAnswer());////Get the correct answer and add it. Collections.shuffle(choices);//Randomize the choices //Add buttons to List to make creating event handlers easier List 

FXML

                                       

问题类

 import java.util.ArrayList; import java.util.List; /** * * @author blj0011 */ public class Question { private String question; private String correctAnswer; private List incorrectAnswers = new ArrayList(); public Question(String question, String correctAnswer, List incorrectAnswers) { this.question = question; this.correctAnswer = correctAnswer; this.incorrectAnswers = incorrectAnswers; } public String getQuestion() { return question; } public void setQuestion(String question) { this.question = question; } public String getCorrectAnswer() { return correctAnswer; } public void setCorrectAnswer(String correctAnswer) { this.correctAnswer = correctAnswer; } public List getIncorrectAnswers() { return incorrectAnswers; } public void setIncorrectAnswers(List incorrectAnswers) { this.incorrectAnswers = incorrectAnswers; } } 

数据库处理程序(您可以从不同的来源获取数据)

 import java.util.ArrayList; import java.util.List; /** * * @author blj0011 */ public class FakeDatabaseHandler { List questions = new ArrayList(); public FakeDatabaseHandler() { //connect to db! //Simulate getting data from db! List incorrectAnswersQuestion1 = new ArrayList(); incorrectAnswersQuestion1.add("Pakistan"); incorrectAnswersQuestion1.add("Palau"); incorrectAnswersQuestion1.add("Panama"); questions.add(new Question("Which is the only American state to begin with the letter 'p'?", "Pennsylvania", incorrectAnswersQuestion1)); List incorrectAnswersQuestion2 = new ArrayList(); incorrectAnswersQuestion2.add("Mississppi"); incorrectAnswersQuestion2.add("Nile"); incorrectAnswersQuestion2.add("Yangtze"); questions.add(new Question("What is the world's longest river?", "Amazon", incorrectAnswersQuestion2)); List incorrectAnswersQuestion3 = new ArrayList(); incorrectAnswersQuestion3.add("6,000 miles"); incorrectAnswersQuestion3.add("10,000 miles"); incorrectAnswersQuestion3.add("12,000 miles"); questions.add(new Question("What is the diameter of Earth?", "8,000 miles", incorrectAnswersQuestion3)); } public List getQuestions() { return questions; } } 

在此处输入图像描述