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.geometry.Pos; import javafx.geometry.Insets; import javafx.application.Platform; import javafx.event.ActionEvent; import javafx.event.EventHandler; import javafx.event.Event; import javafx.stage.FileChooser; import javafx.stage.FileChooser.ExtensionFilter; import java.util.List; import javafx.collections.*; import java.io.*; public class UIBspTabPane02 extends Application implements EventHandler{ private Stage stage = null; private String filename=""; private Button bnNew = new Button("New"); private Button bnOpen = new Button("Open"); private TabPane tabpane = null; @Override public void start(Stage stage) { this.stage = stage; BorderPane root = new BorderPane(); root.setTop( setTopElements() ); root.setCenter( setCenterElements() ); Scene scene= new Scene(root, 660, 490); scene.getStylesheets().add("UIBsp14_Editoren.css"); stage.setTitle("UIBTabPane02"); stage.setScene(scene); stage.show(); } private Pane setTopElements() { VBox vbox = new VBox(22); vbox.setAlignment(Pos.CENTER); vbox.setFillWidth(true); bnNew.setFont(new Font(22)); bnNew.setOnAction(this); bnOpen.setFont(new Font(22)); bnOpen.setOnAction(this); ToolBar toolBar = new ToolBar( bnNew, bnOpen ); vbox.getChildren().add(toolBar); return vbox ; } private TabPane setCenterElements() { tabpane = new TabPane(); tabpane.setTabMinHeight(22); tabpane.setTabMaxHeight(44); return tabpane; } @Override public void handle(Event e) { if(e.getSource() == bnNew){ newFile(); } if(e.getSource() == bnOpen){ openFile(); } } private void newFile() { insertTab("Neu"); } private void openFile() { FileChooser fileChooser = new FileChooser(); fileChooser.setTitle("Open File"); fileChooser.setInitialDirectory( new File("D:\\Daten\\Dp60\\Java-Edit\\") ); fileChooser.getExtensionFilters().addAll( new ExtensionFilter("Text Files", "*.txt", "*.java"), //new ExtensionFilter("Image Files", "*.png", "*.jpg", "*.gif"), new ExtensionFilter("All Files", "*.*")); List list = fileChooser.showOpenMultipleDialog(stage); if (list != null) { for (File file : list) { insertTab(file.getPath()); } } } private void insertTab(String filename) { TextArea editor = new TextArea(); editor.setFont(new Font(22)); Tab tab = new Tab( getFileNameExt(filename) ); tab.setContent(editor); tabpane.getTabs().add(tab); } public String getFileNameExt(String filename) { int k, n; n = filename.length(); k = filename.lastIndexOf("\\"); if (k == -1) { // test mit / k = filename.lastIndexOf("/"); if (k == -1) return filename; else { // beginIndex endIndex return filename.substring(k+1, n); // ?????? n-1 ist zu klein } } else { // beginIndex endIndex return filename.substring(k+1, n); // ?????? n-1 ist zu klein } } // getFileNameExt public static void main(String[] argv) { launch(argv); } }