我正在尝试在javafx中创建一个问卷调查表。我有一个带问题的标签和三个答案按钮。我已经设法将所有这些组合在一起,但是我不确定如何构建整个事物。此外,在山姆边境警报中,我想添加更多问题。我怎么能这样做?
BorderPane questionaires = new BorderPane();
questionaires.setTop(questionnairesPane);
questionaires.setCenter(questionsPane);
//QUESTIONS Panel
questionnairesPane = new GridPane();
questionnairesPane.setHgap(0);
questionnairesPane.setVgap(0);
questionnairesPane.setPadding(new Insets(0, 0, 0, 200));
results = new MyTitles("Questionnaires");
questionnairesPane.setStyle("-fx-font: 150 hamster; -fx-text-fill: white;");
questionnairesPane.add(results,1,1);
questionsPane = new GridPane();
questionsPane.setHgap(15);
questionsPane.setVgap(30);
questionsPane.setPadding(new Insets(0, 50, 0, 80));
SsubjectLabel = new Label("What was your affective response during the game?");
SsubjectLabel.setPrefWidth(1000.0);
SsubjectLabel.setPrefHeight(70.0);
SsubjectLabel.setStyle("-fx-font: 30 cornerstone; -fx-text-fill: black;");
boredom = new Button("Boredom");
boredom.setStyle("-fx-font: 30 cornerstone; -fx-text-fill: black;");
boredom.addEventHandler(ActionEvent.ACTION, (e)-> {
});
engagement = new Button("Boredom");
engagement.setStyle("-fx-font: 30 cornerstone; -fx-text-fill: black;");
engagement.addEventHandler(ActionEvent.ACTION, (e)-> {
});
frustration = new Button("Boredom");
frustration.setStyle("-fx-font: 30 cornerstone; -fx-text-fill: black;");
frustration.addEventHandler(ActionEvent.ACTION, (e)-> {
});
questions.add(SsubjectLabel,1,1);
questions.add(boredom,1,2);
questions.add(engagement,1,3);
questions.add(frustration,1,4);
questions.add(next,2,4);
功能性是正确的,但我如何构建所有按钮的结构,这是我很难做到的。我的面板现在看起来如下图:
答案 0 :(得分:1)
在您进行布局的类中,您可以使用一个方法接受Question
类作为参数。
Question
课程应该有实际问题,可能的答案和正确的答案。
当您想要更改或转到上一个或下一个时,您只需调用上面的方法(changeQuestion(Question newOne);
)
此方法将更改您使用的javaFX元素的值。因此,您不会每次都创建新的FX元素。
如果你想提出很多问题,请使用数组,如果已经回答,则在课堂问题中有一个值。
以上所有内容都是一个简单的想法。
修改
阅读here有关javaFX中内置布局和对齐的信息
你能做的是:
HBox box = new HBox();
Button confirm = new Button();
box.getChildren().add(confirm);
borderPane.setBottom(box);
确认将在窗口左侧。这称为对齐。
您可以使用方法setAlignment();
更改Hbox
和Button
的定位。
虽然有更好的方法。请参阅有关fxml和javaFX here的完整教程。