Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
КН
Кафедра:
Не вказано

Інформація про роботу

Рік:
2016
Тип роботи:
Розрахунково - графічна робота
Предмет:
Об’єктно-орієнтоване програмування

Частина тексту файла (без зображень, графіків і формул):

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ Національний університет “Львівська політехніка” / Розрахункова графічна робота З курсу «Об’єктно-орієнтоване програмування» 1. ЗАВДАННЯ ДО ЛАБОРАТОРНОЇ РОБОТИ Розробити програму додаток калькулятор використовуючи засоби бібліотеку JavaFX. Ця програма додаток повинна містити такі операції: додавання, віднімання, множення, ділення, дорівнює, “backspace”. В меню повинні бути реалізовані такі пункти: Файл, Редагування, Вид, Довідка. В підменю Файл: відкрити, вихід(пункт вихід відокремити розділовою лінією). В підменю Редагування: копіювати, вставити, вирізати. В підменю Вид: звичайний, інженерний. В підменю Довідка: Про програму. Для кожного пункту меню реалізувати мнемонічні операції та для пунктів підменю оперативні кнопки. Реалізувати спливаючі підказки для кожної кнопки. При написанні коду програми використовувати виключні ситуації, а також основні методи прокоментувати англійською мовою. Варіант 6 x^4 M+ MC Cos min(String x, String y) Знайти значення типу float та зменшити на 31. Відсортувати колонку зі значеннями по зростанні Текст програми SimpleCalculatorPane.java import javafx.embed.swing.JFXPanel; import javafx.geometry.Insets; import javafx.geometry.Pos; import javafx.scene.control.Button; import javafx.scene.control.ContentDisplay; import javafx.scene.control.TextField; import javafx.scene.control.Tooltip; import javafx.scene.layout.BorderPane; import javafx.scene.layout.GridPane; import javafx.scene.layout.VBox; public class SimpleCalculatorPane extends CalculatorPane{ JFXPanel fxPanel = new JFXPanel(); public SimpleCalculatorPane(){ // Create a GridPane as the root layout node GridPane window1 = new GridPane(); window1.setPadding(new Insets(5)); window1.setHgap(5); window1.setVgap(5); // Create a BorderPane for the calculator BorderPane windowContent = new BorderPane(); // Create the display field and place it at the Top area of the window displayField = new TextField(); displayField.setAlignment(Pos.BASELINE_RIGHT); windowContent.setTop(displayField); //set a background of window String backgroundStyle = "-fx-background-color: lightgreen;" + "-fx-background-radius: 30%;" + "-fx-background-inset: 5px;"; windowContent.setStyle(backgroundStyle); // Create the components button0 = new Button("0"); button1 = new Button("1"); button2 = new Button("2"); button3 = new Button("3"); button4 = new Button("4"); button5 = new Button("5"); button6 = new Button("6"); button7 = new Button("7"); button8 = new Button("8"); button9 = new Button("9"); buttonPoint = new Button("."); buttonEqual = new Button("="); buttonPlus = new Button("+"); buttonMinus = new Button("-"); buttonMult = new Button("*"); buttonDiv = new Button("/"); buttonSQRT = new Button("sqrt"); buttonMOD = new Button("%"); buttonINV = new Button("1/x"); buttonOPP = new Button("+/-"); buttonLOG = new Button(">>3"); buttonCOS = new Button("Cos"); buttonMIN = new Button("Max"); buttonWInt = new Button("WInt"); buttonWFlt = new Button("WFlt"); buttonWDbl = new Button("WDbl"); buttonWChr= new Button("WChr"); buttonBackspace = new Button("Backspace"); buttonCE = new Button("CE"); buttonC = new Button("C"); buttonMC = new Button("MC"); buttonMR = new Button("MR"); buttonMS = new Button("MS"); buttonMPlus = new Button("M+"); // Set a large preferred size of the buttons, so that they fill the whole space //in their container button0.setPrefSize(800, 800); button1.setPrefSize(800, 800); button2.setPrefSize(800, 800); button3.setPrefSize(800, 800); button4.setPrefSize(800, 800); button5.setPrefSize(800, 800); button6.setPrefSize(800, 800); button7.setPrefSize(800, 800); button8.setPrefSize(800, 800); button9.setPrefSize(800, 800); buttonPoint.setPrefSize(800, 800); buttonEqual.setPrefSize(800, 800); buttonPlus.setPrefSize(80, 800); buttonMinus.setPrefSize(80, 800); buttonMult.setPrefSize(80, 800); buttonDiv.setPrefSize(80, 800); // Create a GridPane node to hold 12 buttons � //10 numeric ones, period, and the equal sign GridPane gridPane = new GridPane(); // Add buttons to the gridPane gridPane.add(button0,0,0); gridPane.add(button1,1,0); gridPane.add(button2,2,0); gridPane.add(button3,0,1); gridPane.add(button4,1,1); gridPane.add(button5,2,1); gridPane.add(button6,0,2); gridPane.add(button7,1,2); gridPane.add(button8,2,2); gridPane.add(button9,0,3); gridPane.add(buttonPoint,1,3); gridPane.add(buttonEqual,2,3); // Create a VBox and add Plus, Minus, Mult, Div buttons to it VBox operations = new VBox(); operations.getChildren().add(buttonPlus); operations.getChildren().add(buttonMinus); operations.getChildren().add(buttonMult); operations.getChildren().add(buttonDiv); // Place the gridPane with buttons at the Center of the window(BorderPane) windowContent.setCenter(gridPane); // Place the VBox with operation buttons (Plus, Minus, Div, Mult) //at the Right area of the border pane windowContent.setRight(operations); window1.add(windowContent, 0, 1); getChildren().add(window1); } } EngineerCalculatorPane.java import javafx.embed.swing.JFXPanel; import javafx.geometry.HPos; import javafx.geometry.Insets; import javafx.geometry.Pos; import javafx.geometry.VPos; import javafx.scene.control.Button; import javafx.scene.control.ContentDisplay; import javafx.scene.control.TextField; import javafx.scene.control.Tooltip; import javafx.scene.layout.GridPane; import javafx.scene.layout.Priority; public class EngineerCalculatorPane extends CalculatorPane{ JFXPanel fxPanel = new JFXPanel(); private final double BUTTON_PREF_WIDTH = 800; private final double BUTTON_PREF_HEIGHT = 800; { buttonWInt = new Button("WInt"); buttonWFlt = new Button("WFlt"); buttonWDbl = new Button("WDbl"); buttonWChr= new Button("WChr"); } public EngineerCalculatorPane(){ super(); // Create a GridPane as the root layout node GridPane windowContent = new GridPane(); windowContent.setPadding(new Insets(5)); windowContent.setHgap(5); windowContent.setVgap(5); buttonWInt.setStyle("" + "-fx-font-size: 12px;" + "-fx-font-weight: bold;"); buttonWFlt.setStyle("" + "-fx-font-size: 12px;" + "-fx-font-weight: bold;"); buttonWDbl.setStyle("" + "-fx-font-size: 11px;" + "-fx-font-weight: bold;"); buttonWChr.setStyle("" + "-fx-font-size: 11px;" + "-fx-font-weight: bold;"); // Create the display field and set the corresponding constraints displayField = new TextField(); displayField.setAlignment(Pos.BASELINE_RIGHT); GridPane.setColumnSpan(displayField, 7); // this cell is as wide as 6 other ones GridPane.setRowSpan(displayField, 1); // this cell has the same height as other cells GridPane.setFillHeight(displayField, true); GridPane.setFillWidth(displayField, true); // fill all space in the cell GridPane.setHalignment(displayField, HPos.CENTER); GridPane.setValignment(displayField, VPos.CENTER); // position within the cell GridPane.setHgrow(displayField, Priority.ALWAYS); GridPane.setVgrow(displayField, Priority.ALWAYS); // grow larger than the preferred size if there is space // Add the display field to the window windowContent.add(displayField, 0, 1); // Create the buttons button0 = new Button("0"); button1 = new Button("1"); button2 =new Button("2"); button3 = new Button("3"); button4 = new Button("4"); button5 = new Button("5"); button6 = new Button("6"); button7 = new Button("7"); button8 = new Button("8"); button9 = new Button("9"); buttonPoint = new Button("."); buttonEqual = new Button("="); buttonPlus = new Button("+"); buttonMinus = new Button("-"); buttonMult = new Button("*"); buttonDiv = new Button("/"); buttonSQRT = new Button("sqrt"); buttonMOD = new Button("%"); buttonINV = new Button("1/x"); buttonOPP = new Button("+/-"); buttonLOG = new Button("x^4"); buttonCOS = new Button("Cos"); buttonMIN = new Button("Min"); buttonBackspace = new Button("Backspace"); buttonCE = new Button("CE"); buttonC = new Button("C"); buttonMC = new Button("MC"); buttonMR = new Button("MR"); buttonMS = new Button("MS"); buttonMPlus = new Button("M+"); // Set a large preferred size of the buttons, // so that they fill the whole space // in their container button0.setPrefSize(BUTTON_PREF_WIDTH, BUTTON_PREF_HEIGHT); button1.setPrefSize(BUTTON_PREF_WIDTH, BUTTON_PREF_HEIGHT); button2.setPrefSize(BUTTON_PREF_WIDTH, BUTTON_PREF_HEIGHT); button3.setPrefSize(BUTTON_PREF_WIDTH, BUTTON_PREF_HEIGHT); button4.setPrefSize(BUTTON_PREF_WIDTH, BUTTON_PREF_HEIGHT); button5.setPrefSize(BUTTON_PREF_WIDTH, BUTTON_PREF_HEIGHT); button6.setPrefSize(BUTTON_PREF_WIDTH, BUTTON_PREF_HEIGHT); button7.setPrefSize(BUTTON_PREF_WIDTH, BUTTON_PREF_HEIGHT); button8.setPrefSize(BUTTON_PREF_WIDTH, BUTTON_PREF_HEIGHT); button9.setPrefSize(BUTTON_PREF_WIDTH, BUTTON_PREF_HEIGHT); buttonPoint.setPrefSize(BUTTON_PREF_WIDTH, BUTTON_PREF_HEIGHT); buttonEqual.setPrefSize(BUTTON_PREF_WIDTH, BUTTON_PREF_HEIGHT); buttonPlus.setPrefSize(BUTTON_PREF_WIDTH, BUTTON_PREF_HEIGHT); buttonMinus.setPrefSize(BUTTON_PREF_WIDTH, BUTTON_PREF_HEIGHT); buttonMult.setPrefSize(BUTTON_PREF_WIDTH, BUTTON_PREF_HEIGHT); buttonDiv.setPrefSize(BUTTON_PREF_WIDTH, BUTTON_PREF_HEIGHT); buttonMC.setPrefSize(BUTTON_PREF_WIDTH, BUTTON_PREF_HEIGHT); buttonMR.setPrefSize(BUTTON_PREF_WIDTH, BUTTON_PREF_HEIGHT); buttonMS.setPrefSize(BUTTON_PREF_WIDTH, BUTTON_PREF_HEIGHT); buttonMPlus.setPrefSize(BUTTON_PREF_WIDTH, BUTTON_PREF_HEIGHT); buttonSQRT.setPrefSize(BUTTON_PREF_WIDTH, BUTTON_PREF_HEIGHT); buttonMOD.setPrefSize(BUTTON_PREF_WIDTH, BUTTON_PREF_HEIGHT); buttonINV.setPrefSize(BUTTON_PREF_WIDTH, BUTTON_PREF_HEIGHT); buttonOPP.setPrefSize(BUTTON_PREF_WIDTH, BUTTON_PREF_HEIGHT); buttonLOG.setPrefSize(BUTTON_PREF_WIDTH, BUTTON_PREF_HEIGHT); buttonCOS.setPrefSize(BUTTON_PREF_WIDTH, BUTTON_PREF_HEIGHT); buttonMIN.setPrefSize(BUTTON_PREF_WIDTH, BUTTON_PREF_HEIGHT); buttonMS.setPrefSize(BUTTON_PREF_WIDTH, BUTTON_PREF_HEIGHT); buttonWChr.setPrefSize(BUTTON_PREF_WIDTH, BUTTON_PREF_HEIGHT); buttonWDbl.setPrefSize(BUTTON_PREF_WIDTH, BUTTON_PREF_HEIGHT); buttonWFlt.setPrefSize(BUTTON_PREF_WIDTH, BUTTON_PREF_HEIGHT); buttonWInt.setPrefSize(BUTTON_PREF_WIDTH, BUTTON_PREF_HEIGHT); buttonBackspace.setPrefSize(200, 800); buttonCE.setPrefSize(200, 800); buttonC.setPrefSize(200, 800); // Add the buttons to the window windowContent.add(button0,1,6); windowContent.add(button1,1,5); windowContent.add(button2,2,5); windowContent.add(button3,3,5); windowContent.add(button4,1,4); windowContent.add(button5,2,4); windowContent.add(button6,3,4); windowContent.add(button7,1,3); windowContent.add(button8,2,3); windowContent.add(button9,3,3); windowContent.add(buttonPoint,3,6); windowContent.add(buttonSQRT,5,3); windowContent.add(buttonMOD,5,4); windowContent.add(buttonINV,5,5); windowContent.add(buttonEqual,5,6); windowContent.add(buttonOPP, 2, 6); windowContent.add(buttonLOG, 6, 3); windowContent.add(buttonCOS, 6, 4); windowContent.add(buttonMIN, 6, 5); windowContent.add(buttonWInt, 11, 3); windowContent.add(buttonWFlt, 11, 4); windowContent.add(buttonWDbl, 11, 5); windowContent.add(buttonWChr, 11, 6); GridPane.setRowIndex(buttonPlus, 6); GridPane.setColumnIndex(buttonPlus, 4); GridPane.setRowIndex(buttonMinus, 5); GridPane.setColumnIndex(buttonMinus, 4); GridPane.setRowIndex(buttonMult, 4); GridPane.setColumnIndex(buttonMult, 4); GridPane.setRowIndex(buttonDiv, 3); GridPane.setColumnIndex(buttonDiv, 4); windowContent.getChildren().addAll(buttonPlus, buttonMinus, buttonMult, buttonDiv); // First column GridPane.setRowIndex(buttonMC, 3); GridPane.setColumnIndex(buttonMC, 0); buttonMC.setPrefSize(BUTTON_PREF_WIDTH, BUTTON_PREF_HEIGHT); GridPane.setRowIndex(buttonMR, 4); GridPane.setColumnIndex(buttonMR, 0); GridPane.setRowIndex(buttonMS, 5); GridPane.setColumnIndex(buttonMS, 0); GridPane.setRowIndex(buttonMPlus, 6); GridPane.setColumnIndex(buttonMPlus, 0); windowContent.getChildren().addAll(buttonMC, buttonMR, buttonMS, buttonMPlus); // First row GridPane.setHalignment(buttonBackspace, HPos.LEFT); GridPane.setColumnSpan(buttonBackspace, 2); GridPane.setFillHeight(buttonBackspace, true); GridPane.setFillWidth(buttonBackspace, true); // fill all space in the cell GridPane.setHgrow(buttonBackspace, Priority.ALWAYS); GridPane.setVgrow(buttonBackspace, Priority.ALWAYS); GridPane.setMargin(buttonBackspace, new Insets(2,40,2,2)); windowContent.add(buttonBackspace, 1, 2); GridPane.setHalignment(buttonCE, HPos.CENTER); GridPane.setColumnSpan(buttonCE, 3); GridPane.setMargin(buttonCE, new Insets(2,40,2,40)); windowContent.add(buttonCE, 2, 2); GridPane.setHalignment(buttonC, HPos.RIGHT); GridPane.setColumnSpan(buttonC, 2); GridPane.setMargin(buttonC, new Insets(2,2,2,40)); windowContent.add(buttonC, 4, 2); getChildren().add(windowContent); } } CalculatorPane.java import javafx.scene.control.Button; import javafx.scene.control.TextField; import javafx.scene.control.Tooltip; import javafx.scene.layout.StackPane; import javafx.scene.text.Text; import java.io.BufferedWriter; import java.io.FileWriter; import java.io.IOException; import java.util.ArrayList; import java.util.Collections; import java.util.List; public abstract class CalculatorPane extends StackPane { private String firstNumber; private String operator; // selected action private double result; private boolean memoryCellIsEmpty = true; private double memoryCell = 0; private String previouslyPressedButton = ""; protected Button buttonWInt; protected Button buttonWFlt; protected Button buttonWDbl; protected Button buttonWChr; private String secondNumber; private int numberi; private double numberd; private float numberf; private char numberc; public Text memoryIndicator; BufferedWriter writeTablein = null; BufferedWriter writeTableout = null; List<Integer> column1 = new ArrayList<Integer>(10); // Defining an integer Array List List<Float> column2 = new ArrayList<Float>(10); // Defining an float Array List List<Double> column3 = new ArrayList<Double>(10); // Defining an double Array List List<Character> column4 = new ArrayList<Character>(10); // Defining an char Array List public void handle(CalculatorEngine engine) { button0.setOnAction((e) -> engine.processEvent(e, this)); button1.setOnAction((e) -> engine.processEvent(e, this)); button2.setOnAction((e) -> engine.processEvent(e, this)); button3.setOnAction((e) -> engine.processEvent(e, this)); button4.setOnAction((e) -> engine.processEvent(e, this)); button5.setOnAction((e) -> engine.processEvent(e, this)); button6.setOnAction((e) -> engine.processEvent(e, this)); button7.setOnAction((e) -> engine.processEvent(e, this)); button8.setOnAction((e) -> engine.processEvent(e, this)); button9.setOnAction((e) -> engine.processEvent(e, this)); buttonPoint.setOnAction((e) -> engine.processEvent(e, this)); buttonEqual.setOnAction((e) -> engine.processEvent(e, this)); buttonPlus.setOnAction((e) -> engine.processEvent(e, this)); buttonMinus.setOnAction((e) -> engine.processEvent(e, this)); buttonMult.setOnAction((e) -> engine.processEvent(e, this)); buttonDiv.setOnAction((e) -> engine.processEvent(e, this)); buttonSQRT.setOnAction((e) -> engine.processEvent(e, this)); buttonMOD.setOnAction((e) -> engine.processEvent(e, this)); buttonINV.setOnAction((e) -> engine.processEvent(e, this)); buttonOPP.setOnAction((e) -> engine.processEvent(e, this)); buttonLOG.setOnAction((e) -> engine.processEvent(e, this)); buttonCOS.setOnAction((e) -> engine.processEvent(e, this)); buttonMIN.setOnAction((e) -> engine.processEvent(e, this)); buttonBackspace.setOnAction((e) -> engine.processEvent(e, this)); buttonCE.setOnAction((e) -> engine.processEvent(e, this)); buttonC.setOnAction((e) -> engine.processEvent(e, this)); buttonMC.setOnAction((e) -> engine.processEvent(e, this)); buttonMR.setOnAction((e) -> engine.processEvent(e, this)); buttonMS.setOnAction((e) -> engine.processEvent(e, this)); buttonMPlus.setOnAction((e) -> engine.processEvent(e, this)); buttonWInt.setOnAction((e) -> engine.processEvent(e, this)); buttonWFlt.setOnAction((e) -> engine.processEvent(e, this)); buttonWDbl.setOnAction((e) -> engine.processEvent(e, this)); buttonWChr.setOnAction((e) -> engine.processEvent(e, this)); } // Declare all calculator's components. protected TextField displayField; protected Button button0; protected Button button1; protected Button button2; protected Button button3; protected Button button4; protected Button button5; protected Button button6; protected Button button7; protected Button button8; protected Button button9; protected Button buttonPoint; protected Button buttonEqual; protected Button buttonPlus; protected Button buttonMinus; protected Button buttonMult; protected Button buttonDiv; protected Button buttonSQRT; protected Button buttonMOD; protected Button buttonINV; protected Button buttonOPP; protected Button buttonLOG; protected Button buttonCOS; protected Button buttonMIN; protected Button buttonBackspace; protected Button buttonCE; protected Button buttonC; protected Button buttonMC; protected Button buttonMR; protected Button buttonMS; Button buttonMPlus; // Constructor public CalculatorPane() { super(); String backgroundStyle = "-fx-background-color: grey;" + "-fx-background-inset: 10px;"; super.setStyle(backgroundStyle); setStyle(backgroundStyle); } // Define getter and setters public String getDisplayValue() { return displayField.getText(); } public void setDisplayValue(String val) { String textColor = " -fx-text-fill: black"; displayField.setStyle(textColor); displayField.setText(val); } public void setDisplayValue(String val, String color) { String textColor = " -fx-text-fill: " + color; displayField.setStyle(textColor); displayField.setText(val); } public String getFirstNumber() { return firstNumber; } public void setFirstNumber(String firstNumber) { this.firstNumber = firstNumber; } public String getOperator() { return operator; } public void setOperator(String operator) { this.operator = operator; } public double getResult() { return result; } public double clearMemory() { memoryCell = 0; return memoryCell; } public double getMemory() { return memoryCell; } public void setMemory(double memoryCell) { this.memoryCell = memoryCell; } public void setResult(double result) { this.result = result; } public String getPreviouslyPressedButton() { return previouslyPressedButton; } public void setPreviouslyPressedButton(String previouslyPressedButton) { this.previouslyPressedButton = previouslyPressedButton; } public void writeInt(String firstNumber) { this.firstNumber = firstNumber; numberi = Integer.parseInt(firstNumber); try{ column1.add(numberi);} catch (IndexOutOfBoundsException exception) { setDisplayValue(String.valueOf(exception));} } public void writeFloat(String firstNumber) { this.firstNumber = firstNumber; //setting type of chars numberf = Float.parseFloat(firstNumber); column2.add(numberf); } public void writeDouble(String firstNumber) { this.firstNumber = firstNumber; //setting type of chars numberd = Double.parseDouble(firstNumber); column3.add(numberd); } public void writeChar(String firstNumber) { this.firstNumber = firstNumber; numberc = firstNumber.charAt(0); column4.add(numberc); } public void write() { try { writeTablein = new BufferedWriter(new FileWriter("C:\\Users\\INTEL-Book\\Desktop\\in.txt")); for (int i = 0; i < column1.size(); i++) { writeTablein.write(column1.get(i) + "\t" + column2.get(i) + "\t" + column3.get(i) + "\t" + column4.get(i)); writeTablein.newLine(); } } catch (IOException exception) { System.err.println(exception); } catch (IndexOutOfBoundsException exception) { System.err.println(exception); } finally { if (writeTablein != null) { try { writeTablein.close(); } catch (IOException e) { System.err.println(e); } } } try{ for (int i = 0; i < column2.size(); i++) { column2.set(i, column2.get(i) - 31); } Collections.sort(column2); try { writeTableout = new BufferedWriter(new FileWriter("C:\\Users\\INTEL-Book\\Desktop\\out.txt")); for (int i = 0; i < column1.size(); i++) { writeTableout.write(column1.get(i) + "\t" + column2.get(i) + "\t" + column3.get(i) + "\t" + column4.get(i)); writeTableout.newLine(); } } catch (IOException exception) { System.err.println(exception); } } catch (IndexOutOfBoundsException exception) { System.err.println(exception); } finally { if (writeTableout != null) { try { writeTableout.close(); } catch (IOException e) { System.err.println(e); } } } } public void clearAll() { displayField.setText("0"); column1.clear(); column2.clear(); column3.clear(); column4.clear(); } protected void setButtonStyles(String style) { button0.setId(style); button1.setId(style); button2.setId(style); button3.setId(style); button4.setId(style); button5.setId(style); button6.setId(style); button7.setId(style); button8.setId(style); button9.setId(style); buttonPoint.setId(style); buttonEqual.setId(style); buttonPlus.setId(style); buttonMinus.setId(style); buttonMult.setId(style); buttonDiv.setId(style); buttonSQRT.setId(style); buttonMOD.setId(style); buttonINV.setId(style); buttonOPP.setId(style); buttonLOG.setId(style); buttonCOS.setId(style); buttonMIN.setId(style); buttonBackspace.setId(style); buttonCE.setId(style); buttonC.setId(style); buttonMC.setId(style); buttonMR.setId(style); buttonMS.setId(style); buttonMPlus.setId(style); } } CalculatorEngine.java import javafx.event.ActionEvent; @FunctionalInterface public interface CalculatorEngine { void processEvent(ActionEvent e, CalculatorPane parent); } Main.java import javafx.application.Application; import javafx.beans.property.ReadOnlyDoubleProperty; import javafx.embed.swing.JFXPanel; import javafx.event.ActionEvent; import javafx.scene.Scene; import javafx.scene.control.*; import javafx.scene.input.KeyCode; import javafx.scene.input.KeyCodeCombination; import javafx.scene.input.KeyCombination; import javafx.scene.layout.GridPane; import javafx.scene.paint.Color; import javafx.stage.FileChooser; import javafx.stage.FileChooserBuilder; import javafx.stage.Stage; import javax.swing.*; import java.io.BufferedReader; import java.io.File; import java.io.FileReader; public class Main extends Application { GridPane window; Stage primaryStage; final Stage link = primaryStage; TextArea fileTextArea = new TextArea(); private static SimpleCalculatorPane simpleCalculatorPane = new SimpleCalculatorPane(); private static EngineerCalculatorPane engineerCalculatorPane = new EngineerCalculatorPane(); public StringBuilder readFile(File selectedFile) { StringBuilder sb = new StringBuilder(1024); String curLine = ""; try { FileReader fr = new FileReader(selectedFile); BufferedReader br = new BufferedReader(fr); while (curLine != null) { curLine = br.readLine(); sb.append(curLine).append("\n"); } } catch (Exception e) { e.getMessage(); } return sb; } /////////MENU BAR////////// public MenuBar buildMenuBarWithMenus1(final ReadOnlyDoubleProperty menuWidthProperty) { final MenuBar menuBar1 = new MenuBar(); /////////FILE MENU////////// final Menu fileMenu = new Menu("_File"); fileMenu.setMnemonicParsing(true); final MenuItem openMenuItem = MenuItemBuilder.create() .text("Open") .onAction( (Event -> { String currentDir = System.getProperty("user.dir") + File.separator; StringBuilder sb = null; FileChooserBuilder fcb = FileChooserBuilder.create(); FileChooser fc = fcb.title("Open Dialog").initialDirectory(new File(currentDir)).build(); File selectedFile = fc.showOpenDialog(link); sb = readFile(selectedFile); fileTextArea.setText(sb.toString()); })) .accelerator( new KeyCodeCombination( KeyCode.O, KeyCombination.CONTROL_DOWN)) .build(); fileMenu.getItems().add(openMenuItem); fileMenu.getItems().add(new SeparatorMenuItem()); final MenuItem exitMenuItem = MenuItemBuilder.create() .text("Exit") .onAction( e -> System.exit(0)) .accelerator( new KeyCodeCombination( KeyCode.E, KeyCombination.CONTROL_DOWN)) .build(); fileMenu.getItems().add(exitMenuItem); menuBar1.getMenus().add(fileMenu); /////////EDIT MENU////////// final Menu editMenu = new Menu("_Edit"); editMenu.setMnemonicParsing(true); final MenuItem copyMenuItem = MenuItemBuilder.create() .text("Copy") .onAction( e -> System.out.println() ) .accelerator( new KeyCodeCombination( KeyCode.C, KeyCombination.CONTROL_DOWN)) .build(); editMenu.getItems().add(copyMenuItem); final MenuItem pasteMenuItem = MenuItemBuilder.create() .text("Paste") .onAction( e -> System.out.println()) .accelerator
Антиботан аватар за замовчуванням

25.05.2016 15:05-

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!