Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.bham.pij.assignments.edgedetector;
- import java.io.File;
- import javafx.application.Application;
- import javafx.event.ActionEvent;
- import javafx.event.EventHandler;
- import javafx.scene.Scene;
- import javafx.scene.control.Menu;
- import javafx.scene.control.MenuBar;
- import javafx.scene.control.MenuItem;
- import javafx.scene.image.Image;
- import javafx.scene.image.ImageView;
- import javafx.scene.layout.VBox;
- import javafx.stage.FileChooser;
- import javafx.stage.Stage;
- public class UserInterface extends Application {
- private VBox root = new VBox();
- private ImageView chosenImage = new ImageView();
- private Image toBeFiltered;
- ImageView toBeShown;
- @Override
- public void start(Stage stage) throws Exception {
- stage.setTitle("Edge Detector");
- Menu fileMenu = new Menu("File");
- MenuItem openItem = new MenuItem("Open");
- MenuItem closeItem = new MenuItem("Close");
- Menu toolsMenu = new Menu("Tools");
- MenuItem edgeDetectionItem = new MenuItem("Edge Detection");
- MenuItem revertItem = new MenuItem("Revert");
- closeItem.setDisable(true);
- edgeDetectionItem.setDisable(true);
- revertItem.setDisable(true);
- openItem.setOnAction(new EventHandler<ActionEvent>() {
- @Override
- public void handle(ActionEvent t) {
- FileChooser fileChooser = new FileChooser();
- fileChooser.setTitle("Open Image File");
- File file = fileChooser.showOpenDialog(stage);
- if(file != null) {
- loadImageFile(file);
- closeItem.setDisable(false);
- openItem.setDisable(true);
- edgeDetectionItem.setDisable(false);
- }
- }
- });
- closeItem.setOnAction(new EventHandler<ActionEvent>() {
- @Override
- public void handle(ActionEvent t) {
- root.getChildren().remove(1);
- closeItem.setDisable(true);
- openItem.setDisable(false);
- revertItem.setDisable(true);
- edgeDetectionItem.setDisable(true);
- }
- });
- edgeDetectionItem.setOnAction(new EventHandler<ActionEvent>() {
- @Override
- public void handle(ActionEvent t) {
- EdgeDetector edge = new EdgeDetector();
- Image filteredImage = edge.filterImage(toBeFiltered);
- toBeShown = new ImageView(filteredImage);
- root.getChildren().remove(chosenImage);
- root.getChildren().add(toBeShown);
- edgeDetectionItem.setDisable(true);
- revertItem.setDisable(false);
- }
- });
- revertItem.setOnAction(new EventHandler<ActionEvent>() {
- @Override
- public void handle(ActionEvent t) {
- root.getChildren().remove(toBeShown);
- root.getChildren().add(chosenImage);
- revertItem.setDisable(true);
- edgeDetectionItem.setDisable(false);
- }
- });
- toolsMenu.getItems().addAll(edgeDetectionItem, revertItem);
- fileMenu.getItems().addAll(openItem, closeItem);
- MenuBar menuBar = new MenuBar();
- menuBar.getMenus().addAll(fileMenu, toolsMenu);
- root.getChildren().addAll(menuBar);
- stage.setScene(new Scene(root, 500, 500));
- stage.show();
- }
- private void loadImageFile(File file) {
- Image image = new Image("file:" + file.getPath());
- ImageView imgView = new ImageView(image);
- root.getChildren().add(imgView);
- chosenImage = imgView;
- toBeFiltered = image;
- }
- public static void main(String[] args) {
- launch(args);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement