2014-12-30 10 views
18

Sto costruendo una semplice app in javafx e voglio essere in grado di aggiungere un bordo a un FlowPane.Come creare un bordo solido semplice attorno a un FlowPane in javafx

Ho un po 'più esperienza in java di javafx, quindi ho cercato di trovare l'equivalente di .setBorder(BorderFactory.createEmptyBorder(0,0,0,0)) ma senza successo.

Purtroppo, tutto ciò che ho trovato sembra essere più complicato del necessario. Non ho bisogno di stili o trattini e questo è tutto quello che sto trovando.

Grazie!

risposta

24

C'è un metodo setBorder(), in modo da poter aggiungere un bordo al riquadro:

FlowPane pane = new FlowPane(10, 10); 
pane.setBorder(new Border(new BorderStroke(Color.BLACK, 
      BorderStrokeStyle.SOLID, CornerRadii.EMPTY, BorderWidths.DEFAULT))); 

Anche se questo è davvero più semplice, con CSS in linea:

pane.setStyle("-fx-border-color: black"); 

Oppure si potrebbe applicare con un File CSS:

FlowPane pane = new FlowPane(10, 10); 
pane.getStyleClass().add("pane"); 

Scene scene = new Scene(pane, 300, 250); 
scene.getStylesheets().add(getClass().getResource("root.css").toExternalForm()); 

dove "root.css" si trova nello stesso pacchetto e contiene:

.pane { 
    -fx-border-color: black; 
} 
+0

Il modo più file CSS dà 'Proprietà sconosciuta: "-fx-border-color"' per me, ma il 'setStyle()' modo ha funzionato bene – golimar

+0

@golimar Controlla il tuo file CSS, che è una proprietà valida per una regione, come puoi vedere nella [guida CSS] (https://docs.oracle.com/javase/8/javafx/api/javafx/scene/doc-files/cssref.html#region). –