javafx中的问号面板的结构

时间:2016-07-13 14:19:51

标签: java javafx

我正在尝试在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);

功能性是正确的,但我如何构建所有按钮的结构,这是我很难做到的。我的面板现在看起来如下图:

enter image description here

1 个答案:

答案 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();更改HboxButton的定位。

虽然有更好的方法。请参阅有关fxml和javaFX here的完整教程。