2016-05-11 12 views
0

enter image description hereWie kann ich die Schaltflächen meiner JavaFx so ändern, dass sie genau so aussehen?

[2]: Unten ist ein Stück von dem, was ich bisher gemacht habe. Ich kann es nicht so aussehen lassen wie das Bild, das ich angehängt habe.

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>() { 
+2

Warum verwenden Sie 'FXML' nicht mit' SceneBuilder'? Macht GUIs in 'JavaFX' so leicht. – Jaims

+0

Mit was genau hast du ein Problem? Das Layout, das Styling, die Schrift, der Text, ...? – hotzst

Antwort

1

Ich würde keine GridPane dafür verwenden. In der Tat bin ich ziemlich sicher, dass ein GridPane alleine nicht tun kann, was Sie wollen.

Sie können einen in der Mitte ausgerichtet HBox für jede Zeile, und unterziehen diese Zeilen in einem einzigen VBox setzen:

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); 

Sie sollten setPrefSize aller Anrufe loszuwerden. Ihre Tasten sind perfekt in der Lage, ihre eigenen Größen zu definieren. Wenn Sie ihnen größere interne Ränder geben möchten, legen Sie ihre CSS-Eigenschaften -fx-label-padding fest.

Verwandte Themen