Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ONAFT_CW_122_CPP_2020_Boitsova M.P._TP.pdf
Скачиваний:
38
Добавлен:
29.03.2021
Размер:
651.89 Кб
Скачать

Курсова робота Бойцової Марії Павлівни

27

6 ІНСТРУКЦІЯ З ЕКСПЛУАТАЦІЇ ПРОГРАМНОГО ПРОДУКТУ

Для того щоб запустити програмний продукт потрібно отримати файл програми типу *.jar.

Для того щоб почати користуватись програмним продуктом потрібно двічі натиснути ЛКМ на виконуваний файл або запустити його з командного рядка через команду java –jar (шлях до виконуваного файлу).

Після вище вказаних дій відкривається вікно програми.

Далі можна записати в нього нове значення (Рисунок 5.2). Ввівши потрібні значення в відповідні комірки потрібно натиснути кнопку «Занести в буфер» для додавання в цього значення в пам’ять програми, після цього вже натиснути «Записати в файл» для збереження в файл.

Для виводу значень потрібно натиснути «Вивести дані з файлу», після чого буду виведено всі значення в спеціальне поле (Рисунок 5.1).

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

Курсова робота Бойцової Марії Павлівни

28

ВИСНОВКИ

Java представляє можливість розробки корпоративних кросплатформних додатків. Крос-платформність досягається завдяки віртуальній Java-машині, або JVM. На відміну від інших мов програмування, Java є кромплатформною мовою на етапі виконання. Під час компіляції код програми конвертується у проміжний байт-код, а при виконанні програми – у машинний код. Такий підхід дозволяє використовувати одну версію програми на різних операційних системах.

JavaFX дозволяє створювати додатки з гнучким інтерфейсом, незалежно від платформи та є сучасним засобом створення користувацького інтерфейсу. Оскільки JavaFX пропонує декілька типів компанувальників, створення інтерфейсу стає легшим, а його редагування більш доступним.

Сучасна технологія колекцій спрощує роботу з групою об'єктів, лямбда вирази спрощують написання коду, передаючи обробку події в код функції обробника.

У результаті був створений крос-платформний додаток на мові Java із використанням засобів JavaFX. Додаток виконує наступні завдання: користувацький інтерфейс, робота з файловою системою , робота з методами, класами та об’єктами. Додаток можна запустити на будь-якій платформі, наприклад, на Windows, Linux або MacOS. Головною умовою використання додатку на різних система є наявність JVM.

Курсова робота Бойцової Марії Павлівни

29

СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ

1.Швець Н.В. Конспект лекцій з курсу «Крос-платформне програмування». О.: ОНАПТ, 2017.

2.Шилдт Г. Java. Полное руководство, 8-е изд.: Пер. с англ. – М.:

ООО «И.Д. Вильямс», 2017. – 1376 с.

3.Шилдт Г. Java. Руководство для начинающих. О, 2019. 812 с.

Курсова робота Бойцової Марії Павлівни

30

ДОДАТОК А

Клас MoveCountRealisation:

package ClassMoveCount; import java.io.BufferedReader; import java.io.File;

import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.io.PrintWriter; import java.util.ArrayList; import java.util.*;

import javafx.application.Application; import javafx.application.Platform; import javafx.event.ActionEvent; import javafx.event.EventHandler; import javafx.geometry.HPos;

import javafx.geometry.Insets; import javafx.scene.Scene;

import javafx.scene.control.Alert; import javafx.scene.control.Button; import javafx.scene.control.ComboBox; import javafx.scene.control.DialogPane; import javafx.scene.control.Label; import javafx.scene.control.Menu; import javafx.scene.control.MenuBar; import javafx.scene.control.MenuItem;

import javafx.scene.control.SeparatorMenuItem; import javafx.scene.control.TextArea;

import javafx.scene.control.TextField; import javafx.scene.control.TitledPane; import javafx.scene.layout.GridPane; import javafx.scene.text.Font;

import javafx.stage.Stage; import javax.swing.ButtonGroup;

public class MoveCountRealisation extends Application{ ArrayList<MoveCount> addList = new ArrayList<MoveCount>(); ArrayList<MoveCount> readList = new ArrayList<MoveCount>(); ArrayList<MoveCount> searchList = new ArrayList<MoveCount>(); ArrayList<Integer> indexOfFindList = new ArrayList<Integer>(); ArrayList<MoveCount> readListEvery = new ArrayList<MoveCount>();

@Override

public void start(Stage stage) throws Exception {

//Меню файла

MenuBar menubar = new MenuBar();

Menu fileButton = new Menu("Файл");

MenuItem aboutButton = new MenuItem ( "Про роботу"); MenuItem exitButton = new MenuItem("Вихід"); fileButton.getItems().addAll(aboutButton,new

SeparatorMenuItem(),exitButton); menubar.getMenus().add(fileButton);

//Меню налаштувань

Курсова робота Бойцової Марії Павлівни

31

//Зміна кольору

Menu settings= new Menu("Вигляд"); Menu font = new Menu("Шрифт");

Menu colorsMenu=new Menu("Змінити колір"); MenuItem red = new MenuItem("Червоний"); MenuItem blue = new MenuItem("Блакитний"); MenuItem yellow = new MenuItem("Жовтий"); MenuItem green = new MenuItem("Зелений"); //Зміна шрифту

ButtonGroup buttonGroup = new ButtonGroup();

MenuItem TimesNewRoman = new MenuItem("Times New Roman"); MenuItem Courier = new MenuItem("Courier"); menubar.getMenus().add(settings); settings.getItems().addAll(colorsMenu, font); colorsMenu.getItems().addAll(red,blue,yellow,green); font.getItems().addAll(TimesNewRoman, Courier);

EventHandler<ActionEvent> MenuHandler = (ActionEvent actionEvent) ->

{

String name = ((MenuItem)actionEvent.getTarget()).getText(); if(name.equals("Вихід"))Platform.exit();

};

exitButton.setOnAction(MenuHandler);

red.setOnAction(MenuHandler);

blue.setOnAction(MenuHandler);

yellow.setOnAction(MenuHandler);

green.setOnAction(MenuHandler);

aboutButton.setOnAction(MenuHandler);

TimesNewRoman.setOnAction(MenuHandler);

Courier.setOnAction(MenuHandler);

//Параметри сцени stage.setTitle("Розрахунок руху");

GridPane gridpane=new GridPane(); gridpane.setPadding(new Insets(0,20,20,20)); gridpane.setVgap(10);

gridpane.setHgap(15);

Scene scene=new Scene(gridpane,900,550); stage.setScene(scene); stage.setResizable(false);

//Додавання заголовків та текстових полів для вводу

Label windLineLabel=new Label("Повітряна лінія"); Label planeTypeLabel=new Label("Тип літака");

Label raceQuantityLabel=new Label("Кількість рейсів"); Label distanceLabel=new Label("Наліт, км" );

Label passengerKmLabel=new Label("Пасажирообіг, люд/км");

TextField windLineText= new TextField(); windLineText.setPromptText("Введіть повітряну лінію");

TextField planeTypeText= new TextField(); planeTypeText.setPromptText("Введіть тип літака");

TextField raceQuantityText= new TextField(); raceQuantityText.setPromptText("Введіть кількість рейсів");

TextField distanceText= new TextField(); distanceText.setPromptText("Введіть наліт, км");

TextField passengerKmText= new TextField();

Курсова робота Бойцової Марії Павлівни

32

passengerKmText.setPromptText("Введіть пасажирообіг");

Button addToBufButton = new Button("Занести у буфер"); Button writeToFileButton = new Button("Записати у файл"); Label bufLabel=new Label ("Кількість строк у буфері");

windLineLabel.setFont(new Font ("Arial",12)); planeTypeLabel.setFont(new Font ("Arial",12)); raceQuantityLabel.setFont(new Font ("Arial",12)); distanceLabel.setFont(new Font ("Arial",12)); passengerKmLabel.setFont(new Font ("Arial",12)); bufLabel.setFont(new Font ("Arial",12));

windLineText.setPrefSize(220,20);

planeTypeText.setPrefSize(220,20);

raceQuantityText.setPrefSize(220,20);

distanceText.setPrefSize(220,20);

passengerKmText.setPrefSize(220,20);

addToBufButton.setFont(new Font ("Arial",12)); addToBufButton.setPrefSize(220,20); writeToFileButton.setFont(new Font ("Arial",12)); writeToFileButton.setPrefSize(220,20);

//Розташування на сцені

TitledPane titledPane=new TitledPane(); titledPane.setText("Введення даних");

GridPane gridPane1=new GridPane(); gridPane1.setPadding(new Insets (10,20,20,20)); gridPane1.setVgap(5);

gridPane1.setHgap(10); gridPane1.setStyle("-fx-background-color: #FFFFFF");

GridPane.setConstraints(windLineLabel, 0, 1); GridPane.setHalignment(windLineLabel, HPos.LEFT); gridPane1.getChildren().add(windLineLabel); GridPane.setConstraints(windLineText, 0, 2); gridPane1.getChildren().add(windLineText);

GridPane.setConstraints(planeTypeLabel,0,4); GridPane.setHalignment(planeTypeLabel,HPos.LEFT); gridPane1.getChildren().add(planeTypeLabel); GridPane.setConstraints(planeTypeText, 0, 5); gridPane1.getChildren().add(planeTypeText);

GridPane.setConstraints(raceQuantityLabel,0,8); GridPane.setHalignment(raceQuantityLabel,HPos.LEFT); gridPane1.getChildren().add(raceQuantityLabel); GridPane.setConstraints(raceQuantityText, 0, 9); gridPane1.getChildren().add(raceQuantityText);

GridPane.setConstraints(distanceLabel,0,12); GridPane.setHalignment(distanceLabel,HPos.LEFT); gridPane1.getChildren().add(distanceLabel); GridPane.setConstraints(distanceText, 0, 13); gridPane1.getChildren().add(distanceText);

GridPane.setConstraints(passengerKmLabel,0,16); GridPane.setHalignment(passengerKmLabel,HPos.LEFT); gridPane1.getChildren().add(passengerKmLabel); GridPane.setConstraints(passengerKmText, 0, 17); gridPane1.getChildren().add(passengerKmText);

Курсова робота Бойцової Марії Павлівни

33

GridPane.setConstraints(addToBufButton,0,20); gridPane1.getChildren().add(addToBufButton); GridPane.setConstraints(bufLabel,0,24); gridPane1.setColumnSpan(bufLabel,3); GridPane.setHalignment(bufLabel,HPos.LEFT); gridPane1.getChildren().add(bufLabel); GridPane.setConstraints(writeToFileButton,0,28); gridPane1.getChildren().add(writeToFileButton);

//Меню

GridPane.setConstraints(menubar, 0, 0); gridPane1.setColumnSpan(menubar,11); gridpane.getChildren().add(menubar);

titledPane.setCollapsible(false);

titledPane.setContent(gridPane1);

GridPane.setConstraints(titledPane,0,1); GridPane.setColumnSpan(titledPane,4); gridpane.getChildren().add(titledPane);

TextArea textArea=new TextArea(); textArea.setPrefSize(400,437); textArea.setPromptText("Дані з файлу:");

Button readFileButton=new Button ("Вивести дані з файлу"); readFileButton.setFont(new Font("Arial",12)); readFileButton.setPrefSize(200,20);

Button clearButton=new Button ("Очистити"); clearButton.setFont(new Font("Arial",12)); clearButton.setPrefSize(200,20);

Button searchButton=new Button("Пошук"); searchButton.setFont(new Font("Arial",12));

Button editButton=new Button("Зміна даних"); editButton.setFont(new Font("Arial",12));

ComboBox choiceComboBox= new ComboBox(); choiceComboBox.setPromptText("Оберіть дані"); choiceComboBox.getItems().add("Повітряна лінія"); choiceComboBox.getItems().add("Тип літака"); choiceComboBox.getItems().add("Кількість рейсів"); choiceComboBox.getItems().add("Наліт"); choiceComboBox.getItems().add("Пасажирообіг");

TextField searchText = new TextField(); searchText.setPromptText("Введіть поле для пошуку");

TextField editText = new TextField(); editText.setPromptText("Введіть дані для заміни");

TitledPane TpanelArray = new TitledPane(); GridPane gridArray = new GridPane(); gridArray.setPadding(new Insets(10)); gridArray.setVgap(5); gridArray.setHgap(10);

gridArray.setStyle("-fx-background-color: #FFFFFF");

TpanelArray.setCollapsible(false);

TpanelArray.setText("Виведення");

TpanelArray.setContent(gridArray);

Курсова робота Бойцової Марії Павлівни

34

TitledPane searchTitledPanel = new TitledPane(); searchTitledPanel.setPrefSize(150,200); searchTitledPanel.setText("Пошук");

GridPane searchGridPanel = new GridPane(); searchGridPanel.setPadding(new Insets(20)); searchGridPanel.setVgap(10); searchGridPanel.setHgap(10); searchGridPanel.setStyle("-fx-background-color:#FFFFFF");

GridPane.setConstraints(searchText,1,0); searchGridPanel.getChildren().add(searchText);

GridPane.setConstraints(searchButton,1,1); GridPane.setHalignment(searchButton,HPos.RIGHT); searchGridPanel.getChildren().add(searchButton);

GridPane.setConstraints(choiceComboBox,1,2); searchGridPanel.getChildren().add(choiceComboBox);

GridPane.setConstraints(editText,1,3); GridPane.setHalignment(editText,HPos.RIGHT); searchGridPanel.getChildren().add(editText);

GridPane.setConstraints(editButton,1,4); GridPane.setHalignment(editButton,HPos.RIGHT); searchGridPanel.getChildren().add(editButton);

searchTitledPanel.setContent(searchGridPanel);

GridPane.setConstraints(searchTitledPanel,4,4); gridArray.getChildren().add(searchTitledPanel);

GridPane.setConstraints(textArea,0,0); GridPane.setColumnSpan(textArea,4); GridPane.setRowSpan(textArea,5); gridArray.getChildren().add(textArea);

GridPane.setConstraints(readFileButton,4,0); GridPane.setHalignment(readFileButton,HPos.RIGHT); gridArray.getChildren().add(readFileButton);

GridPane.setConstraints(clearButton,4,2); GridPane.setHalignment(clearButton,HPos.RIGHT); gridArray.getChildren().add(clearButton);

GridPane.setConstraints(TpanelArray, 8, 1); GridPane.setColumnSpan(TpanelArray,2); gridpane.getChildren().add(TpanelArray);

//ОБРОБКА ПОДІЙ //Додавання у буфер

addToBufButton.setOnAction((ActionEvent event) ->

{

MoveCount moveCount;

if (!windLineText.getText().isEmpty()&&!planeTypeText.getText().isEmpty()&&!race QuantityText.getText().isEmpty()&&!distanceText.getText().isEmpty()&&!passeng erKmText.getText().isEmpty())

{

try

{

Курсова робота Бойцової Марії Павлівни

35

String w_line=windLineText.getText().toUpperCase(); String plane_t=planeTypeText.getText().toUpperCase(); int

race_q=Integer.parseInt(raceQuantityText.getText().toUpperCase()); double

dist=Double.parseDouble(distanceText.getText().toUpperCase()); double

hum_km=Double.parseDouble(passengerKmText.getText().toUpperCase()); moveCount = new MoveCount(w_line, plane_t, race_q, dist,

hum_km);

addList.add(moveCount);

}

catch(Exception e)

{

System.out.println("Помилка! "+e.getMessage());

}

windLineText.clear();

planeTypeText.clear();

raceQuantityText.clear();

distanceText.clear();

passengerKmText.clear();

bufLabel.setText("Кількість строк у буфері: " + addList.size());

}

else

{

Alert alert=new Alert(Alert.AlertType.WARNING); DialogPane dialogPane=alert.getDialogPane(); dialogPane.setStyle("-fx-background-color: #e0e04c"); alert.setTitle("Помилка!"); alert.setHeaderText("Введіть усі дані!"); alert.setContentText(null);

alert.showAndWait();

}

});

//Запис у файл writeToFileButton.setOnAction((ActionEvent event)->{

if (addList.isEmpty() )

{

Alert alert=new Alert(Alert.AlertType.ERROR); DialogPane dialogPane=alert.getDialogPane(); dialogPane.setStyle("-fx-background-color: #FF6347"); alert.setTitle("Помилка!");

alert.setHeaderText("Щоб записати в файл, введіть дані!"); alert.setContentText(null);

alert.showAndWait();

}

else

{

try(PrintWriter out = new PrintWriter(new FileWriter("E:\\movecount.dat",true))){

Iterator<MoveCount> iterator = addList.iterator(); while(iterator.hasNext()){

MoveCount element; element = iterator.next(); element.writeData(out);

}

bufLabel.setText("Всі строки додано у файл"); addList.clear();

}

catch(IOException e)

{

e.printStackTrace();

Курсова робота Бойцової Марії Павлівни

36

}

}

});

//Читання з файлу readFileButton.setOnAction((ActionEvent event) -> {

textArea.clear();

readList.clear();

String s;

MoveCount obj;

File fl=new File("E:\\movecount.dat"); if(!fl.exists() || fl.length()==0)

{

Alert alert=new Alert(Alert.AlertType.ERROR); DialogPane dialogPane=alert.getDialogPane(); dialogPane.setStyle("-fx-background-color: darkgrey"); alert.setTitle("Помилка!");

alert.setHeaderText("Файл пустий або його не існує."); alert.setContentText(null);

alert.showAndWait();

}

else

{

try( BufferedReader in=new BufferedReader(new FileReader(fl)))

{

while( (s=in.readLine())!=null)

{

obj=new MoveCount(); obj.readData(s,in); readList.add(obj);

}

for(int i=0;i<readList.size();i++)

{

// textArea.appendText(readList.get(i)+"\n"); obj=new MoveCount();

obj= readList.get(i);

String text=String.format("Повітряна лінія: %s\nТип літака: %s\nКількість рейсів: %3d\nНаліт: %.0f\nПасажирообіг:%.0f\n",obj.getWindLine(),

obj.getPlaneType(), obj.getRaceQuantity(), obj.getDistance(), obj.getPassengerKm());

textArea.appendText(text+"\n");

}

}

catch(IOException exception)

{

exception.printStackTrace();

}

}

});

//Пошук у файлі searchButton.setOnAction((ActionEvent event) -> {

textArea.clear();

Курсова робота Бойцової Марії Павлівни

37

indexOfFindList.clear(); boolean flag=false; MoveCount mc;

if(!searchText.getText().isEmpty()){ for(int i=0; i<readList.size(); i++){

mc = readList.get(i);

if(mc.getWindLine().equals(searchText.getText().toUpperCase())){ flag = true; textArea.appendText(mc+"\n"); indexOfFindList.add(i);

}

}

//for(int i=0; i<readList.size(); i++) //textArea.appendText(indexOfFindList.get(i)+"\n");

if(!flag){

Alert alert=new Alert(Alert.AlertType.ERROR); DialogPane dialogPane=alert.getDialogPane(); dialogPane.setStyle("-fx-background-color: #FFFFFF"); alert.setTitle("Помилка!"); alert.setHeaderText("Файл не знайдено!"); alert.setContentText(null);

alert.showAndWait();

}}

else{

Alert alert=new Alert(Alert.AlertType.ERROR); DialogPane dialogPane=alert.getDialogPane(); dialogPane.setStyle("-fx-background-color: #FFFFFF"); alert.setTitle("Помилка!"); alert.setHeaderText("Введіть дані для пошуку"); alert.setContentText(null);

alert.showAndWait();

}

});

//Зміна даних editButton.setOnAction((ActionEvent event) -> {

String m1 = "Повітряна лінія"; String m2 = "Тип літака"; String m3 = "Кількість рейсів"; String m4 = "Наліт";

String m5 = "Пасажирообіг";

MoveCount moveCount = null; if(indexOfFindList.isEmpty()){

Alert alert=new Alert(Alert.AlertType.ERROR); DialogPane dialogPane=alert.getDialogPane(); dialogPane.setStyle("-fx-background-color: #FFFFFF"); alert.setTitle("Помилка!"); alert.setHeaderText("Дані не знайдено."); alert.setContentText(null);

alert.showAndWait();

}

else{

if(choiceComboBox.getValue()==null || editText.getText().isEmpty()){

Alert alert=new Alert(Alert.AlertType.ERROR); DialogPane dialogPane=alert.getDialogPane(); dialogPane.setStyle("-fx-background-color: #FFFFFF"); alert.setTitle("Помилка!"); alert.setHeaderText("Дані не знайдено."); alert.setContentText(null);

alert.showAndWait();

Курсова робота Бойцової Марії Павлівни

38

}

else{

if(choiceComboBox.getValue().toString()== m1){ for(int i=0; i<indexOfFindList.size(); i++){

moveCount = readList.get(indexOfFindList.get(i));

moveCount.setWindLine(editText.getText().toUpperCase()); readList.set(indexOfFindList.get(i), moveCount);

}

}

if(choiceComboBox.getValue().toString()==m2){ for(int i=0; i<indexOfFindList.size(); i++){

moveCount = readList.get(indexOfFindList.get(i));

moveCount.setPlaneType(editText.getText().toUpperCase()); readList.set(indexOfFindList.get(i), moveCount);

}

}

if(choiceComboBox.getValue().toString()==m3){ for(int i=0; i<indexOfFindList.size(); i++){

moveCount = readList.get(indexOfFindList.get(i));

moveCount.setRaceQuantity(Integer.parseInt(editText.getText().toUpperCase()))

;

readList.set(indexOfFindList.get(i), moveCount);

}

}

if(choiceComboBox.getValue().toString()==m4){ for(int i=0; i<indexOfFindList.size(); i++){

moveCount = readList.get(indexOfFindList.get(i));

moveCount.setDistance(Integer.parseInt(editText.getText())); readList.set(indexOfFindList.get(i), moveCount);

}

}

if(choiceComboBox.getValue().toString()==m5){ for(int i=0; i<indexOfFindList.size(); i++){

moveCount = readList.get(indexOfFindList.get(i));

moveCount.setPassengerKm(Integer.parseInt(editText.getText())); readList.set(indexOfFindList.get(i), moveCount);

}

}

textArea.appendText("\nДані успішно замінено:\n"); textArea.appendText(moveCount+"\n");

try (PrintWriter out = new PrintWriter(new FileWriter("E:\\movecount.dat"))){

Iterator<MoveCount> it = readList.iterator(); while(it.hasNext()) {

MoveCount element; element=it.next(); element.writeData(out);

}

}

catch(IOException e)

{

e.printStackTrace();

}

readList.clear();

}

}

Курсова робота Бойцової Марії Павлівни

39

});

//Кнопки меню aboutButton.setOnAction((ActionEvent event ) -> {

Alert alert=new Alert(Alert.AlertType.INFORMATION); DialogPane dialogPane=alert.getDialogPane(); dialogPane.setStyle("-fx-background-color: #F0F8FF"); alert.setTitle("Інформація про виконавця"); alert.setHeaderText("Робота Бойцової Марії,\nстудентки групи

332.\nОНАХТ, 2020 р."); alert.showAndWait();

});

clearButton.setOnAction((ActionEvent event ) -> { windLineText.clear();

planeTypeText.clear();

raceQuantityText.clear();

distanceText.clear();

passengerKmText.clear();

textArea.clear();

});

red.setOnAction((ActionEvent event ) -> { gridPane1.setStyle("-fx-background-color:#e30202"); gridArray.setStyle("-fx-background-color:#ba2323"); searchGridPanel.setStyle("-fx-background-color:#b35959");

windLineLabel.setStyle("-fx-text-fill: white"); planeTypeLabel.setStyle("-fx-text-fill: white"); raceQuantityLabel.setStyle("-fx-text-fill: white"); distanceLabel.setStyle("-fx-text-fill: white"); passengerKmLabel.setStyle("-fx-text-fill: white"); bufLabel.setStyle("-fx-text-fill: white");

});

Font font1 = new Font("Times New Roman",14); Font font2 = new Font("Courier",14);

TimesNewRoman.setOnAction((ActionEvent event ) -> { searchButton.setFont(font1); editButton.setFont(font1); textArea.setFont(font1); textArea.setStyle("-fx-text-fill: #4682B4");

});

Courier.setOnAction((ActionEvent event ) -> { searchButton.setFont(font2); editButton.setFont(font2); textArea.setFont(font2); textArea.setStyle("-fx-text-fill: #FFA500");});

blue.setOnAction((ActionEvent event ) -> { gridPane1.setStyle("-fx-background-color:#1871d6"); gridArray.setStyle("-fx-background-color:#439bd1"); searchGridPanel.setStyle("-fx-background-color:#3388bd");

windLineLabel.setStyle("-fx-text-fill: white"); planeTypeLabel.setStyle("-fx-text-fill: white"); raceQuantityLabel.setStyle("-fx-text-fill: white"); distanceLabel.setStyle("-fx-text-fill: white"); passengerKmLabel.setStyle("-fx-text-fill: white"); bufLabel.setStyle("-fx-text-fill: white");

});

yellow.setOnAction((ActionEvent event ) -> {

Курсова робота Бойцової Марії Павлівни

40

gridPane1.setStyle("-fx-background-color:#F0E68C"); gridArray.setStyle("-fx-background-color:#F0E68C"); searchGridPanel.setStyle("-fx-background-color:#FFD700");

windLineLabel.setStyle("-fx-text-fill: black"); planeTypeLabel.setStyle("-fx-text-fill: black"); raceQuantityLabel.setStyle("-fx-text-fill: black"); distanceLabel.setStyle("-fx-text-fill: black"); passengerKmLabel.setStyle("-fx-text-fill: black"); bufLabel.setStyle("-fx-text-fill: black");

});

green.setOnAction((ActionEvent event ) -> { gridPane1.setStyle("-fx-background-color:darkgreen"); gridArray.setStyle("-fx-background-color:green"); searchGridPanel.setStyle("-fx-background-color:lightgreen");

windLineLabel.setStyle("-fx-text-fill: black"); planeTypeLabel.setStyle("-fx-text-fill: black"); raceQuantityLabel.setStyle("-fx-text-fill: black"); distanceLabel.setStyle("-fx-text-fill: black"); passengerKmLabel.setStyle("-fx-text-fill: black"); bufLabel.setStyle("-fx-text-fill: black");

});

stage.show();

}

static void errorM()

{

Alert alert=new Alert(Alert.AlertType.INFORMATION); DialogPane dialogPane=alert.getDialogPane(); dialogPane.setStyle("-fx-background-color: blue"); alert.setTitle("Поле не знайдено!"); alert.setHeaderText("Оберіть поле!"); alert.setContentText(null);

alert.showAndWait();

}

public static void main(String[] args) { launch(args);

}

}

Клас MoveCount

package ClassMoveCount;

import java.io.BufferedReader; import java.io.IOException; import java.io.PrintWriter; import java.util.StringTokenizer; import java.util.*;

//import java.util.Formatter;

public class MoveCount { private String windLine; private String planeType; private int raceQuantity; private double distance; private double passengerKm; public MoveCount(){

}

Курсова робота Бойцової Марії Павлівни

41

public MoveCount(String windLine, String planeType, int raceQuantity, double distance, double passengerKm) {

this.windLine = windLine; this.planeType = planeType; this.raceQuantity = raceQuantity; this.distance = distance; this.passengerKm = passengerKm;

}

/*public void formattedPrint(){

try (Formatter formatter = new Formatter())

{

formatter.format("%20s %15s %13d %15.2f %11.2f", windLine,

planeType,

raceQuantity, distance, passengerKm); System.out.println(formatter);

}

}*/

public String getWindLine(){ return windLine;

}

public String getPlaneType(){ return planeType;

}

public int getRaceQuantity(){ return raceQuantity;

}

public double getDistance(){ return distance;

}

public double getPassengerKm(){ return passengerKm;

}

public void setWindLine(String windLine) { this.windLine = windLine;

}

public void setPlaneType(String planeType){ this.planeType=planeType;

}

public void setRaceQuantity(int raceQuantity){ this.raceQuantity = raceQuantity;

}

public void setDistance(double distance){ this.distance = distance;

}

public void setPassengerKm(double passengerKm){ this.passengerKm = passengerKm;

}

public String toString(){ return

windLine+"\t\t"+planeType+"\t\t"+raceQuantity+"\t\t"+distance+"\t\t"+passenge rKm+"\n";

}

public void writeData(PrintWriter printWriter){ printWriter.println(windLine+" "+planeType+" "+raceQuantity+"

"+distance+" "+passengerKm);

}

public void readData(String s, BufferedReader in) throws IOException {

StringTokenizer t = new StringTokenizer(s," "); windLine = t.nextToken();

planeType = t.nextToken();

raceQuantity = Integer.parseInt(t.nextToken());

Курсова робота Бойцової Марії Павлівни

42

distance = Double.parseDouble(t.nextToken()); passengerKm = Double.parseDouble(t.nextToken());

}

}