如何空间收音机按钮

时间:2015-03-10 01:28:04

标签: java eclipse javafx

所以我对Java很陌生,正在开发一个QuizFrame项目,以此来改善FX。代码仍然是一项正在进行的工作,但我的主要问题是:如何将单选按钮空间化?

当我在Swing中进行操作时,按钮似乎自动间隔开来,但这里只有一个单选按钮,所有选项都叠在一起。

以下是代码:

公共类QuizFrame2扩展了Application {

RadioButton[] optionButtons;
TextArea questionArea;
Button submitButton;
Question[] questions;
int currQuestion;
Pane questionPanel;
String[] choices;
TextArea resultArea;

final int NUM_OPTIONS = 4;

@Override
public void start(Stage primaryStage) throws Exception {

    GridPane grid = new GridPane();
    grid.setPadding(new Insets(10, 10, 10, 10));
    grid.setVgap(5);
    grid.setHgap(5);

    questions = new Question[2];
    questions[0] = new Question();
    questions[1] = new Question("What is 1+1?", 
       new String[]{"1", "2", "3", "4"}, "2");

    currQuestion = 0;

    questionArea = new TextArea();
    questionArea.setText(questions[currQuestion].getQuestion());
    submitButton = new Button();
    submitButton.setText("Submit");

    questionArea.setPrefSize(500, 50);

    ToggleGroup bG = new ToggleGroup();

    RadioButton[] optionsButton = new RadioButton[NUM_OPTIONS];
    questionPanel = new Pane();

    for(int i = 0; i < optionsButton.length; i++)
    {

     optionsButton[i] = new RadioButton(questions[currQuestion].getOption(i));
     optionsButton[i].setToggleGroup(bG);
     questionPanel.getChildren().add(optionsButton[i]);


    }

    submitButton.setOnAction(new EventHandler<ActionEvent>()
            {

                @Override
                public void handle(ActionEvent event) {
                    // TODO Auto-generated method stub

                }

            });




    GridPane.setConstraints(submitButton, 0, 80);
    GridPane.setConstraints(questionArea, 0, 0);
    GridPane.setConstraints(questionPanel, 0, 3);


    grid.getChildren().add(questionPanel);
    grid.getChildren().add(questionArea);
    grid.getChildren().add(submitButton);




    Scene scene = new Scene(grid, 500, 500);

    primaryStage.setTitle("TextArea Input");
    primaryStage.setScene(scene);
    primaryStage.show();




}

public static void main(String[] args) 
 {
        launch(args);

        }

}

1 个答案:

答案 0 :(得分:0)

您将RadioButton放在通用Pane中,它没有布局。您需要使用一个特定的Pane子类来完成您需要的布局。

例如,您可以使用VBox

questionPanel = new VBox();

for(int i = 0; i < optionsButton.length; i++)
{

 optionsButton[i] = new RadioButton(questions[currQuestion].getOption(i));
 optionsButton[i].setToggleGroup(bG);
 questionPanel.getChildren().add(optionsButton[i]);


}