如何更改我的JavaFx按钮看起来像这样?

时间:2016-05-11 17:32:21

标签: java macos javafx jpanel computer-science

enter image description here

[2]:以下是我迄今为止所做的一件事。似乎无法让它看起来像我所附的图片。

  gp.getColumnConstraints().addAll(rc, rc1, rc2);
            gp.setAlignment(Pos.TOP_CENTER);
            gp.add(prev, 0, 0);
            gp.add(search, 1, 0);
            gp.add(next, 2, 0);

            Button add = new Button("Add + ");
            add.setPrefSize(75, 10);
            add.setOnAction(new EventHandler<ActionEvent>() {

                @Override
                public void handle(ActionEvent arg0) {
                    if (!fNameFld.getText().toString().equals("")) {
                        Contact c = new Contact(fNameFld.getText().toString(), numF.getText().toString(),
                                emailf.getText().toString());
                        contact.add(c);
                        i = contact.indexOf(c);
                        System.out.println(i);
                    }
                }
            });

            Button edit = new Button("Edit * ");
            edit.setPrefSize(75, 10);
            edit.setOnAction(new EventHandler<ActionEvent>() {

1 个答案:

答案 0 :(得分:1)

我不会为此使用GridPane。事实上,我很确定GridPane本身无法做到你想要的。

您可以为每一行制作一个居中对齐的HBox,并将这些行放入一个VBox中:

Collection<HBox> buttonRows = Arrays.asList(
    new HBox(6, previous, search, next),
    new HBox(6, add, edit, remove),
    new HBox(6, clear, quit));
buttonRows.forEach(hbox -> hbox.setAlignment(Pos.CENTER));

VBox buttonPane = new VBox(12);
buttonPane.getChildren().addAll(buttonRows);

你应该摆脱对setPrefSize的所有电话。您的按钮完全能够定义自己的尺​​寸。如果您想为它们提供更大的内部边距,请设置其-fx-label-padding CSS属性。

相关问题