Advertisement
Guest User

Untitled

a guest
Dec 9th, 2019
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.95 KB | None | 0 0
  1. package com.bham.pij.assignments.edgedetector;
  2.  
  3. import java.io.File;
  4. import javafx.application.Application;
  5. import javafx.event.ActionEvent;
  6. import javafx.event.EventHandler;
  7. import javafx.scene.Scene;
  8. import javafx.scene.control.Menu;
  9. import javafx.scene.control.MenuBar;
  10. import javafx.scene.control.MenuItem;
  11. import javafx.scene.image.Image;
  12. import javafx.scene.image.ImageView;
  13. import javafx.scene.layout.VBox;
  14. import javafx.stage.FileChooser;
  15. import javafx.stage.Stage;
  16.  
  17. public class UserInterface extends Application {
  18.  
  19. private Image img = null;
  20. private ImageView imgView = null;
  21. private ImageView edImgView = null;
  22. private VBox root = new VBox();
  23.  
  24. private void loadImageFile(File file) {
  25.  
  26. img = new Image("file:" + file.getPath());
  27. imgView = new ImageView(img);
  28. root.getChildren().add(imgView);
  29. }
  30.  
  31. @Override
  32. public void start (Stage stage) {
  33.  
  34. stage.setTitle("Title");
  35. VBox root = new VBox();
  36.  
  37. Menu fileMenu = new Menu("File");
  38. MenuItem openItem = new MenuItem("Open");
  39. MenuItem closeItem = new MenuItem("Close");
  40.  
  41. Menu toolsMenu = new Menu("Tools");
  42. MenuItem edgeDetItem = new MenuItem("Edge Detection");
  43. MenuItem revertItem = new MenuItem("Revert");
  44.  
  45. openItem.setOnAction(new EventHandler<ActionEvent>() {
  46. @Override
  47. public void handle(ActionEvent t) {
  48. FileChooser fileChooser = new FileChooser();
  49. fileChooser.setTitle("Open Image File");
  50. File file = fileChooser.showOpenDialog(stage);
  51. if (file != null) {
  52. loadImageFile(file);
  53. root.getChildren().add(imgView);
  54. openItem.setDisable(true);
  55. edgeDetItem.setDisable(false);
  56. revertItem.setDisable(true);
  57. closeItem.setDisable(false);
  58. }
  59. }
  60.  
  61.  
  62.  
  63. });
  64.  
  65. closeItem.setOnAction(new EventHandler<ActionEvent>() {
  66. @Override
  67. public void handle(ActionEvent t) {
  68.  
  69. root.getChildren().remove(imgView);
  70. root.getChildren().remove(edImgView);
  71. stage.setTitle("EdgeDetector.exe");
  72.  
  73. openItem.setDisable(false);
  74. edgeDetItem.setDisable(true);
  75. revertItem.setDisable(true);
  76. }
  77. });
  78.  
  79. edgeDetItem.setOnAction(new EventHandler<ActionEvent>() {
  80. @Override
  81. public void handle(ActionEvent t) {
  82.  
  83. EdgeDetector obj = new EdgeDetector();
  84. root.getChildren().remove(imgView);
  85. edImgView = new ImageView(obj.filterImage(img));
  86. root.getChildren().add(edImgView);
  87. stage.setTitle("EdgeDetector Filter");
  88.  
  89. openItem.setDisable(true);
  90. edgeDetItem.setDisable(true);
  91. revertItem.setDisable(false);
  92. }
  93. });
  94.  
  95. revertItem.setOnAction(new EventHandler<ActionEvent>() {
  96. @Override
  97. public void handle(ActionEvent t) {
  98.  
  99. root.getChildren().remove(edImgView);
  100. root.getChildren().add(imgView);
  101. stage.setTitle("EdgeDetector Filter - Reverted change");
  102.  
  103. openItem.setDisable(true);
  104. edgeDetItem.setDisable(false);
  105. revertItem.setDisable(true);
  106. }
  107. });
  108.  
  109. closeItem.setDisable(true);
  110. edgeDetItem.setDisable(true);
  111. revertItem.setDisable(true);
  112.  
  113. fileMenu.getItems().addAll(openItem, closeItem);
  114. toolsMenu.getItems().addAll(edgeDetItem, revertItem);
  115. MenuBar menuBar = new MenuBar();
  116. menuBar.getMenus().add(fileMenu);
  117. menuBar.getMenus().add(toolsMenu);
  118.  
  119. root.getChildren().add(menuBar);
  120.  
  121. stage.setScene(new Scene(root, 500, 500));
  122. stage.show();
  123.  
  124.  
  125.  
  126. }
  127.  
  128. public static void main(String[] args) {
  129.  
  130. launch(args);
  131.  
  132. }
  133.  
  134. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement