Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.bham.pij.assignments.edgedector;
- import javafx.application.Application;
- import javafx.event.ActionEvent;
- import javafx.event.EventHandler;
- import javafx.scene.Group;
- import javafx.scene.Scene;
- import javafx.scene.control.*;
- import javafx.scene.image.ImageView;
- import javafx.scene.layout.VBox;
- import javafx.stage.FileChooser;
- import javafx.stage.Stage;
- import javafx.scene.image.Image;
- import java.io.File;
- import java.nio.file.NoSuchFileException;
- public class GUI extends Application {
- Image raw;
- ImageView rawImageView;
- VBox root = new VBox();
- VBox images = new VBox();
- Group rawImageCopy = new Group();
- final Scene scene = new Scene(root, 500, 500);
- @Override
- public void start(Stage stage){
- stage.setTitle("Image Filter");
- // File menu
- Menu fileMenu = new Menu("File");
- // File menu items
- MenuItem openItem = new MenuItem("Open");
- MenuItem closeItem = new MenuItem("Close");
- closeItem.setDisable(true);
- // Tools Menu
- Menu toolsMenu = new Menu("Tools");
- // Tools menu items
- MenuItem edgeDetItem = new MenuItem("Edge Detection");
- MenuItem revertItem = new MenuItem("Revert");
- edgeDetItem.setDisable(true);
- revertItem.setDisable(true);
- // Setting up each Menu with the corresponting items
- fileMenu.getItems().addAll(openItem, closeItem);
- toolsMenu.getItems().addAll(edgeDetItem, revertItem);
- // Menu item functions
- // Open item Action
- openItem.setOnAction(new EventHandler<ActionEvent>() {
- @Override
- public void handle(ActionEvent o) {
- FileChooser fileChooser = new FileChooser();
- fileChooser.setTitle("Open Image File");
- File file = fileChooser.showOpenDialog(stage);
- if (file != null){
- loadImageFile(file);
- openItem.setDisable(true);
- edgeDetItem.setDisable(false);
- closeItem.setDisable(false);
- }
- }
- });
- // Close item Action
- closeItem.setOnAction(new EventHandler<ActionEvent>() {
- @Override
- public void handle(ActionEvent c) {
- closeItem.setDisable(true);
- openItem.setDisable(false);
- edgeDetItem.setDisable(true);
- revertItem.setDisable(true);
- images.getChildren().clear();
- }
- });
- // Edge Detection item Action
- edgeDetItem.setOnAction(new EventHandler<ActionEvent>() {
- @Override
- public void handle(ActionEvent actionEvent) {
- EdgeDetector obj = new EdgeDetector();
- obj.filterImage(raw);
- openItem.setDisable(true);
- revertItem.setDisable(false);
- closeItem.setDisable(false);
- edgeDetItem.setDisable(true);
- }
- });
- // Revert item Action
- revertItem.setOnAction(new EventHandler<ActionEvent>() {
- @Override
- public void handle(ActionEvent actionEvent) {
- images.getChildren().clear();
- root.getChildren().add(rawImageCopy);
- edgeDetItem.setDisable(false);
- openItem.setDisable(true);
- closeItem.setDisable(false);
- revertItem.setDisable(true);
- }
- });
- //Setting up the Menu Bar
- final MenuBar menuBar = new MenuBar();
- menuBar.getMenus().addAll(fileMenu, toolsMenu);
- root.getChildren().add(menuBar);
- stage.setScene(scene);
- stage.show();
- }
- private void loadImageFile (File file ){
- Image image = new Image("file:" + file.getPath());
- ImageView imageView = new ImageView(image);
- ImageView rawImage = new ImageView(image);
- raw = image;
- rawImageView = imageView;
- images.getChildren().add(imageView);
- rawImageCopy.getChildren().add(rawImage);
- root.getChildren().add(images);
- }
- public static void main(String[] args) {
- launch(args);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement