ToolBar createToolBar() {
final ToggleGroup alignToggleGroup = new ToggleGroup();
Button newButton = new Button();
.setGraphic(new ImageView(new Image(getClass().getResourceAsStream("images/paper.png"))));
newButton.setId("newButton");
newButton.setTooltip(new Tooltip("New Document... Ctrl+N"));
newButton.setOnAction(e -> System.out.println("New toolbar button clicked"));
Button editButton = new Button();
editButton.setGraphic(new Circle(8, Color.GREEN));
editButton.setId("editButton");
Button deleteButton = new Button();
deleteButton.setGraphic(new Circle(8, Color.BLUE));
deleteButton.setId("deleteButton");
ToggleButton boldButton = new ToggleButton();
boldButton.setGraphic(new Circle(8, Color.MAROON));
boldButton.setId("boldButton");
boldButton.setOnAction(e -> {
ToggleButton tb = ((ToggleButton) e.getTarget());
System.out.print(e.getEventType() + " occurred on ToggleButton "
+ tb.getId());
System.out.print(", and selectedProperty is: ");
System.out.println(tb.selectedProperty().getValue());
});
ToggleButton italicButton = new ToggleButton();
italicButton.setGraphic(new Circle(8, Color.YELLOW));
italicButton.setId("italicButton");
italicButton.setOnAction(e -> {
ToggleButton tb = ((ToggleButton) e.getTarget());
System.out.print(e.getEventType() + " occurred on ToggleButton "
+ tb.getId());
System.out.print(", and selectedProperty is: ");
System.out.println(tb.selectedProperty().getValue());
});
ToggleButton leftAlignButton = new ToggleButton();
leftAlignButton.setGraphic(new Circle(8, Color.PURPLE));
leftAlignButton.setId("leftAlignButton");
leftAlignButton.setToggleGroup(alignToggleGroup);
ToggleButton centerAlignButton = new ToggleButton();
centerAlignButton.setGraphic(new Circle(8, Color.ORANGE));
centerAlignButton.setId("centerAlignButton");
centerAlignButton.setToggleGroup(alignToggleGroup);
ToggleButton rightAlignButton = new ToggleButton();
rightAlignButton.setGraphic(new Circle(8, Color.CYAN));
rightAlignButton.setId("rightAlignButton");
rightAlignButton.setToggleGroup(alignToggleGroup);
ToolBar toolBar = new ToolBar(
newButton,
editButton,
deleteButton,
new Separator(Orientation.VERTICAL),
boldButton,
italicButton,
new Separator(Orientation.VERTICAL),
leftAlignButton,
centerAlignButton,
rightAlignButton
);
alignToggleGroup.selectToggle(alignToggleGroup.getToggles().get(0));
alignToggleGroup.selectedToggleProperty().addListener((ov, oldValue, newValue) -> {
ToggleButton tb = ((ToggleButton) alignToggleGroup.getSelectedToggle());
if (tb != null) {
System.out.println(tb.getId() + " selected");
}
});
return toolBar;
}
Creating a Toolbar
To create the toolbar, our StarterApp program defines a method that we’ve arbitrarily named createToolBar(), shown in Listing 6-4. This method leverages the Button, Separator, ToggleButton, and ToggleGroup classes, and returns a ToolBar instance that contains the desired toolbar buttons.
Listing 6-4. The createToolBar() Method
툴바에 구분선 넣기
It is sometimes useful to visually separate toolbar buttons by using the vertical separators shown in Figure 6-3. To accomplish this, use the Separator class as shown in this line from Listing 6-4:
new Separator(Orientation.VERTICAL),
Although we didn’t make use of separators in the menus of this StarterApp program, Separator objects may be used in menus as well. Of course, separators used in menus typically have a HORIZONTAL Orientation.