2016-07-13 6 views
2

Я пытаюсь создать панель анкеты в javafx. У меня есть метка с вопросом и три кнопки ответа. Мне удалось собрать все вместе, однако я не уверен, как я могу структурировать все это. Кроме того, в Sam BorderPane я хочу добавить еще несколько вопросов. Как я могу это сделать?Структура панели вопросника в 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); 

functinoality является corrent, но как я могу структурировать corrent все кнопки, это то, что я изо всех сил делать. Моя панель теперь выглядит следующим образом ПОС:

enter image description here

ответ

1

В классе, где вы сделали макет вы можете иметь один метод, которые принимают в качестве параметра Question класса.

Question класс должен иметь соответствующий вопрос, возможные ответы и правильный.

Если вы хотите изменить или перейти к предыдущему или следующему просто вызовите метод выше (changeQuestion(Question newOne);)

Этот метод изменит значения элементов JavaFX вы use.so вы не будете создавать новые элементы FX каждый раз.

Если вы хотите задать много вопросов, используйте массив, и в вопросе класса задайте значение, если был дан ответ или нет.

Все вышеперечисленное как простая идея.

Редактировать

Read here о наплавленных в макетах и ​​выравнивание в JavaFX

Что вы можете сделать, это:

HBox box = new HBox(); 
    Button confirm = new Button(); 
    box.getChildren().add(confirm); 
    borderPane.setBottom(box); 

Подтверждать будет идти по левой стороне окна Это называется выравниванием.

Вы можете использовать способ setAlignment();, чтобы изменить положение Hbox и Button.

Есть лучшие подходы, хотя. Познакомьтесь с полным руководством по fxml и javaFX here.

+0

Можете ли вы дать мне простой пример панели? – konstantin

+1

Вы имеете в виду ui? Он основан на том, как вы хотите, чтобы это было. Если вы хотите, чтобы пользователь мог продолжить следующий вопрос, только если он ответил на текущее, тогда ваша фотография + кнопка подтверждения одобрена. Хотя вы можете есть стрелки, и пользователь может перемещаться с ними, скажем, по 10 вопросам. Поискайте примеры jquery carousel, чтобы получить некоторые идеи. Посмотрите несколько видеороликов YouTube о пользовательском интерфейсе. Используйте свое воображение :) – GOXR3PLUS

+0

Хорошо, я просто использовал кнопку для переходите к следующему вопросу. Мой вопрос с самого начала был более структурным. Как кнопка может быть ниже ответа в одной строке? – konstantin

Смежные вопросы