Добавил:
Кафедра ВТ Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Краденные лабы / 8308_Треско_Сергеев_ЛР№7

.pdf
Скачиваний:
0
Добавлен:
08.04.2023
Размер:
402.68 Кб
Скачать

МИНОБРНАУКИ РОССИИ САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ ЭЛЕКТРОТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ «ЛЭТИ» ИМ. В.И. УЛЬЯНОВА (ЛЕНИНА) Кафедра Вычислительной техники

ОТЧЕТ по лабораторным работам №7

по дисциплине «Распределённые системы» ТЕМА: JAVAFX

Студенты гр. 8308

 

Треско М.Ю.

 

 

 

Сергеев В.С.

Преподаватель

 

 

Бекенева Я.А.

Санкт-Петербург

2022

Цель работы

Изучение технологии JavaFX.

Основные теоретические положения

JavaFX — платформа для создания RIA, позволяет строить унифицированные приложения с насыщенным графическим интерфейсом пользователя для непосредственного запуска из-под операционных систем, работы в браузерах и на мобильных телефонах, в том числе работающих с мультимедийным содержимым.

Каркас приложения на JavaFX имеет вид:

public class Main extends Application {

@Override public void start(Stage primaryStage) throws Exception{

primaryStage.setTitle("Simple Application");

primaryStage.show(); }

public static void main(String[] args) {

launch(args);

}

}

Здесь класс Application является главным классом приложения, именно

вего потоке можно использовать компоненты JavaFX.

Вметоде main, где находится точка входа в программу, вызывается метод launch(), он в свою очередь, является точкой входа в FX-приложение. Метод start() вызывается при создании потока приложения, в его параметрах можно увидеть объект класса Scene. Этот класс связан с экземпляром окна, которое будет видеть пользователь.

Именно в метод start добавляется кнопки, текстовые поля и т.п. В остальном написание простейших FX-приложений напоминает написание обычного java приложения, например на Swing.

Задание на лабораторную работу

Создать простую форму для аутентификации с использованием JavaFX.

Выполнение работы

Исходный код:

App.java

package RS.RS7JFX;

import javafx.application.Application; import javafx.event.ActionEvent; import javafx.event.EventHandler; import javafx.fxml.FXMLLoader;

import javafx.scene.Parent; import javafx.scene.Scene; import javafx.stage.Modality; import javafx.stage.Popup; import javafx.stage.Stage;

import java.io.IOException; import java.util.Arrays; import java.util.HashMap;

import javafx.geometry.Insets; import javafx.geometry.Pos;

import javafx.scene.control.Button; import javafx.scene.control.Label;

import javafx.scene.control.PasswordField; import javafx.scene.control.TextField; import javafx.scene.layout.StackPane; import javafx.scene.layout.VBox;

import javafx.scene.text.Text;

public class App extends Application { private StackPane root = new StackPane(); private Stage primaryStage;

HashMap<String, String> login_info = new HashMap<String, String>();

@Override

public void init() { login_info.put("Vlad", "qwerty"); login_info.put("Mikhail", "asdfgh"); login_info.put("admin", "zxcvbn");

}

@Override

public void start(Stage primaryStage) { Scene scene = new Scene(root,400,600); primaryStage.setScene(scene); primaryStage.setTitle("Логин"); primaryStage.show();

VBox vBox = new VBox();

vBox.setAlignment(Pos.CENTER);

vBox.setSpacing(8);

vBox.setPadding(new Insets(10,10,10,10)); TextField textField = new TextField(); PasswordField passwordField = new PasswordField(); Button openButton = new Button("Вход"); vBox.getChildren().addAll(

new Label("Имя пользователя"), textField,

new Label("Пароль"), passwordField, openButton);

root.getChildren().addAll(vBox);

openButton.setOnAction(new EventHandler<ActionEvent>() {

@Override

public void handle(ActionEvent event) { Stage dialogStage = new Stage();

dialogStage.initModality(Modality.WINDOW_MODAL); VBox popvBox = new VBox(); popvBox.setAlignment(Pos.CENTER); popvBox.setPadding(new Insets(15));

Button hide = new Button("Hide"); hide.setOnAction(new EventHandler<ActionEvent>() {

@Override

public void handle(ActionEvent event) { dialogStage.hide();

}

});

String name = textField.getText();

String password = passwordField.getText(); if (password.equals(login_info.get(name))) {

popvBox.getChildren().addAll(new Text(name + " зашёл в

систему"), hide);

dialogStage.setTitle("Успешный вход"); } else {

popvBox.getChildren().addAll(new Text("Неправильная комбинация логина и пароля"), hide);

dialogStage.setTitle("Не удалось войти");

}

dialogStage.setScene(new Scene(popvBox)); dialogStage.show();

}

});

}

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

}

}

Скриншоты работы приложения:

Рисунок 1.Форма аутентификации

Рисунок 2. Успешная попытка аутентификации

Рисунок 3. Неуспешная попытка аутентификации

Вывод

При выполнении лабораторной работы изучена и применена технология

JavaFX.