Skip to content

Instantly share code, notes, and snippets.

@mik30s
Created October 23, 2017 02:15
Show Gist options
  • Save mik30s/8e500a5306dae27580bbb09d1915001c to your computer and use it in GitHub Desktop.
Save mik30s/8e500a5306dae27580bbb09d1915001c to your computer and use it in GitHub Desktop.
Lab14 GUI
package edu.tarleton;
import java.util.HashMap;
import java.util.Iterator;
import java.util.function.Consumer;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.control.Menu;
import javafx.scene.control.MenuBar;
import javafx.scene.control.MenuItem;
public class EditorMenu {
public static final String NEW = "New";
public static final String SAVE = "Save";
public static final String SAVE_AS = "Save As";
public static final String CUT = "Cut";
public static final String COPY = "Copy";
public static final String PASTE = "Paste";
public static final String DEL = "Del";
public static final String PAGE_SETUP = "Page Setup";
public static final String PRINT = "Print";
public static final String EXIT = "Exit";
public static final String UNDO = "Undo";
public static final String FIND = "Find";
public static final String GO_TO = "Go To";
public static final String WORD_WRAP = "Word Wrap";
public static final String FONT = "Font...";
public static final String STATUS = "Status Bar";
public final static String[] FileMenus = new String[]{
NEW, SAVE, SAVE_AS, PAGE_SETUP, PRINT, EXIT
};
public final static String[] editMenus = new String[]{
CUT, COPY, PASTE, DEL, UNDO, FIND, GO_TO
};
public final static String[] formatMenus = new String[]{
WORD_WRAP, FONT,
};
public final static String[] ViewMenus = new String[]{STATUS};
public final static String[] helpMenus = new String[]{"View Help"};
public final static Menu file = new Menu("File");
public final static Menu edit = new Menu("Edit");
public final static Menu format = new Menu("Format");
public final static Menu view = new Menu("View");
public final static Menu help = new Menu("Help");
public final static MenuBar menuBar = new MenuBar(file, edit, format, view, help);
public HashMap<Menu, String[]> submenus = new HashMap<>();
public EditorMenu() {
submenus.put(file, FileMenus);
submenus.put(edit, editMenus);
submenus.put(format, formatMenus);
submenus.put(view, ViewMenus);
submenus.put(help, helpMenus);
for (Menu m : submenus.keySet()) {
for (String s : submenus.get(m)) {
m.getItems().add(new MenuItem(s));
}
}
}
public void setMenuHandler(Menu main, String name, Consumer action) {
main.getItems().forEach(e -> {
if (e.getText().equals(name)){
e.setOnAction(new EventHandler<ActionEvent>(){
@Override
public void handle(ActionEvent e) {
action.accept(e);
}
});
}
});
}
}
package edu.tarleton;
import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Separator;
import javafx.scene.control.TextArea;
import javafx.scene.control.ToolBar;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.layout.StackPane;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
public class Lab14 extends Application {
public static EditorMenu menu = new EditorMenu();
public TextArea txtArea = new TextArea();
@Override
public void start(Stage primaryStage) {
VBox root = createToolBar();
Scene scene = new Scene(root, 300, 250);
menu.setMenuHandler(EditorMenu.format, EditorMenu.FONT, e -> {
openFontDialog(txtArea.selectedTextProperty().get());
});
primaryStage.setTitle("Hello World!");
primaryStage.setScene(scene);
primaryStage.show();
}
public VBox createToolBar() {
ImageView[] imv = new ImageView[]{
new ImageView(new Image(getClass().getResourceAsStream("new.png"))),
new ImageView(new Image(getClass().getResourceAsStream("save.png"))),
new ImageView(new Image(getClass().getResourceAsStream("cut.png"))),
new ImageView(new Image(getClass().getResourceAsStream("copy.png"))),
new ImageView(new Image(getClass().getResourceAsStream("paste.png"))),
};
Button[] buttons = new Button[]{
new Button(),
new Button(),
new Button(),
new Button(),
new Button()
};
int i = 0;
for (Button bt : buttons) {
bt.setGraphic(imv[i]);
i++;
}
return new VBox(new ToolBar((Button[])buttons));
}
public void openFontDialog(String text) {
}
public static void main(String[] args) {
launch(args);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment