import javafx.application.Application; import javafx.scene.Scene; import javafx.scene.control.*; import javafx.scene.layout.*; // javafx.scene.layout.Pane import javafx.stage.Stage; import javafx.scene.text.TextAlignment; import javafx.scene.text.Font; import javafx.scene.text.FontWeight; import javafx.geometry.Pos; import javafx.geometry.Insets; import javafx.scene.control.Menu; import javafx.scene.control.MenuBar; import javafx.scene.control.MenuItem; import javafx.application.Platform; import javafx.event.ActionEvent; import javafx.event.EventHandler; import javafx.event.Event; import javafx.scene.input.KeyCombination; public class UIBspMenu03 extends Application { private Stage stage = null; private TextArea editor = new TextArea("") ; private BorderPane root = new BorderPane(); MenuBar menuBar = new MenuBar(); private RadioMenuItem menuFont10 = new RadioMenuItem("Font 10pg (RadioButton)"); private RadioMenuItem menuFont12 = new RadioMenuItem("Font 12pg (RadioButton)"); private RadioMenuItem menuFont14 = new RadioMenuItem("Font 14pg (RadioButton)"); private RadioMenuItem menuFont16 = new RadioMenuItem("Font 16pg (RadioButton)"); private CheckMenuItem menuFontBold = new CheckMenuItem("Fett (CheckBox)"); private int fontsize=10; @Override public void start(Stage stage) { this.stage = stage; root.setTop( setTopElements() ); root.setCenter( setCenterElements() ); Scene scene= new Scene(root, 460, 390); // scene.getStylesheets().add("UIBspMenu03.css"); stage.setTitle("UIBspMenu03"); stage.setScene(scene); stage.show(); } private Pane setTopElements() { VBox vbox = new VBox(22); vbox.setAlignment(Pos.CENTER); vbox.setFillWidth(true); Menu menuFile = new Menu("File"); menuBar.getMenus().add(menuFile); MenuItem menuOpen = new MenuItem("Open File..."); MenuItem menuSave = new MenuItem("Save File..."); MenuItem menuClose = new MenuItem("Close"); menuOpen.setOnAction(e->openFile()); menuSave.setOnAction(e->saveFile()); menuClose.setOnAction(e->Platform.exit()); menuOpen.setAccelerator(KeyCombination.keyCombination("Ctrl+O")); menuSave.setAccelerator(KeyCombination.keyCombination("Ctrl+S")); menuFile.getItems().addAll(menuOpen, menuSave, new SeparatorMenuItem()); menuFile.getItems().add(menuClose); Menu menuEdit = new Menu("Edit"); menuBar.getMenus().add(menuEdit); MenuItem menuCut = new MenuItem("Ausschneiden"); MenuItem menuCopy = new MenuItem("Kopieren"); MenuItem menuPaste = new MenuItem("Einfügen"); menuCut.setOnAction(e->cut()); menuCopy.setOnAction(e->copy()); menuPaste.setOnAction(e->paste()); menuCut.setAccelerator(KeyCombination.keyCombination("Ctrl+X")); menuCopy.setAccelerator(KeyCombination.keyCombination("Ctrl+C")); menuSave.setAccelerator(KeyCombination.keyCombination("Ctrl+V")); menuEdit.getItems().addAll(menuCut, menuCopy, menuPaste); ToggleGroup mngroup = new ToggleGroup(); // javafx.scene.control.ToggleButton menuFont10.setToggleGroup(mngroup); menuFont12.setToggleGroup(mngroup); menuFont14.setToggleGroup(mngroup); menuFont16.setToggleGroup(mngroup); Menu menuFont = new Menu("Font"); menuBar.getMenus().add(menuFont); menuFont10.setOnAction(e->fontchange(e)); menuFont12.setOnAction(e->fontchange(e)); menuFont14.setOnAction(e->fontchange(e)); menuFont16.setOnAction(e->fontchange(e)); menuFontBold.setOnAction(e->fontchange(null)); menuFont.getItems().addAll(menuFont10, menuFont12, menuFont14, menuFont16, menuFontBold ); menuFont10.setSelected(true); fontsize=10; fontchange(null); // root.setStyle("-fx-font: 22px \"Serif\";"); vbox.getChildren().add(menuBar); return vbox ; } private void fontchange(ActionEvent e) { System.out.println("FontChange"); if (e==null) { // Bold } else { RadioMenuItem menuFont = (RadioMenuItem) e.getSource(); menuFont.setSelected(true); if (menuFont10==menuFont) fontsize=10; if (menuFont12==menuFont) fontsize=12; if (menuFont14==menuFont) fontsize=14; if (menuFont16==menuFont) fontsize=16; } // root.getStyles().clear(); if (menuFontBold.isSelected()) { root.setStyle(" -fx-font-size: "+fontsize+"px; -fx-font-weight:bold; -fx-font-family: Tahoma;"); System.out.println("Bold fontsize"+fontsize); } else { System.out.println("fontsize"+fontsize); root.setStyle(" -fx-font-size: "+fontsize+"px; -fx-font-family: Tahoma;"); // menuBar.setStyle("-fx-font: "+fontsize+"px \"Serif\";"); } } private TextArea setCenterElements() { editor.setPrefRowCount(10); editor.setPrefColumnCount(10); editor.setWrapText(true); //editor.setFont(new Font("Courier New",22)); return editor; } private void openFile() { } private void saveFile() { } private void cut() { editor.cut(); } private void copy() { editor.copy(); } private void paste() { editor.paste(); } public static void main(String[] argv) { launch(argv); } }