Курсовая работа: Проектирование и создание приложения Формирование приказа

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Список использованной литературы

1. П.В. Бураков, В.Ю. Петров. Введение в системы баз данных - Петербург, 2014. - 323 с.

Приложение A

<?xml version="1.0" encoding="UTF-8"?>

<?importjavafx.geometry.Insets?>

<?importjavafx.scene.control.Button?>

<?importjavafx.scene.control.TableColumn?>

<?importjavafx.scene.control.TableView?>

<?importjavafx.scene.layout.BorderPane?>

<?importjavafx.scene.layout.HBox?>

<BorderPaneprefHeight="350.0" style="-fx-background-color: #1d1d1d;" stylesheets="@style.css" xmlns="http://javafx.com/javafx/8.0.112" xmlns:fx="http://javafx.com/fxml/1" fx:controller="view.MainWinController">

<center>

<TableViewfx:id="table" editable="true" prefHeight="200.0" prefWidth="300.0" BorderPane.alignment="CENTER">

<columns>

<TableColumnfx:id="studColumn" minWidth="-Infinity" prefWidth="237.0" text="Студент" />

<TableColumnfx:id="temaColumn" prefWidth="226.0" text="Тема" />

<TableColumnfx:id="kuratorColumn" minWidth="115.0" prefWidth="236.0" text="Куратор" />

</columns>

</TableView>

</center>

<bottom>

<HBoxprefHeight="23.0" prefWidth="500.0" BorderPane.alignment="CENTER">

<children>

<Button mnemonicParsing="false" onAction="#handleAdd" prefHeight="33.0" prefWidth="68.0" text="+" />

<Button mnemonicParsing="false" onAction="#handleDel" prefHeight="33.0" prefWidth="64.0" text="-" />

</children>

</HBox>

</bottom>

<top>

<HBoxprefHeight="27.0" prefWidth="700.0" BorderPane.alignment="CENTER">

<children>

<Button mnemonicParsing="false" onAction="#handleChange" text="Добавитьстудента" />

<Button mnemonicParsing="false" onAction="#handleChangeT" text="Добавитьтему" />

<Button mnemonicParsing="false" onAction="#handleChangeK" text="ДобавитьКуратора" />

<Button alignment="TOP_RIGHT" mnemonicParsing="false" onAction="#Save" text="Сохранить">

<HBox.margin>

<Insets left="160.0" />

</HBox.margin></Button>

<Button alignment="TOP_RIGHT" mnemonicParsing="false" onAction="#Load" text="Загрузить" />

<Button alignment="TOP_RIGHT" mnemonicParsing="false" onAction="#Print" text="Печать" />

</children>

</HBox>

</top>

</BorderPane>

Приложение Б

Верстка главного окна

package view;

import javafx.fxml.FXML;

import javafx.fxml.FXMLLoader;

import javafx.print.PageLayout;

import javafx.print.PageOrientation;

import javafx.print.Printer;

import javafx.print.PrinterJob;

import javafx.scene.Scene;

import javafx.scene.control.ComboBox;

import javafx.scene.control.Label;

import javafx.scene.control.TableColumn;

import javafx.scene.control.TableView;

import javafx.scene.image.Image;

import javafx.scene.layout.Pane;

import javafx.scene.layout.VBox;

import javafx.stage.Modality;

import javafx.stage.Stage;

import model.Person;

import model.Spisok;

import model.Tema;

import java.io.IOException;

public class MainWinController {

Stage primaryStage;

@FXML

TableView<Spisok>table;

@FXML

TableColumn<Spisok,String>studColumn;

@FXML

TableColumn<Spisok,String>temaColumn;

@FXML

TableColumn<Spisok,String>kuratorColumn;

ComboBox<Person>stud;

ComboBox<Tema>tem;

ComboBox<Person>kurator;

public void init(Stage primaryStage){

this.primaryStage= primaryStage;this.primaryStage.getIcons().add(newImage("file:attendance_mark1600.png"));

table.setItems(Data.List);

studColumn.setCellValueFactory(cellData ->cellData.getValue().studProperty());

temaColumn.setCellValueFactory(cellData ->cellData.getValue().temaProperty());

kuratorColumn.setCellValueFactory(cellData ->cellData.getValue().kuratorProperty());

studColumn.setCellFactory(cellData ->new studCell( Data.personList, Data.List));

temaColumn.setCellFactory(cellData ->new temaCell( Data.TEMA, Data.List));

kuratorColumn.setCellFactory(cellData ->new kuratorCell( Data.kuratorList, Data.List));}

@FXML

private void handleAdd(){Data.List.add(new Spisok("???","???","???"));}

@FXML

private void handleDel(){

intindex = table.getSelectionModel().getSelectedIndex();

Data.List.remove(Data.List.get(index));}

ПриложениеA - КлассMainWinController

ПриложениеB

(обязательное)

<?xml version="1.0" encoding="UTF-8"?>

<?import javafx.scene.control.Button?>

<?import javafx.scene.control.Label?>

<?import javafx.scene.control.TextField?>

<?import javafx.scene.layout.ColumnConstraints?>

<?import javafx.scene.layout.GridPane?>

<?import javafx.scene.layout.RowConstraints?>

<GridPaneprefHeight="200.0" prefWidth="200.0" style="-fx-background-color: #1d1d1d;" stylesheets="@style.css" xmlns="http://javafx.com/javafx/8.0.112" xmlns:fx="http://javafx.com/fxml/1" fx:controller="view.ChangeWinController">

<columnConstraints>

<ColumnConstraintshalignment="LEFT" hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />

<ColumnConstraintshgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />

</columnConstraints>

<rowConstraints>

<RowConstraints />

<RowConstraintsmaxHeight="40.0" minHeight="10.0" vgrow="SOMETIMES" />

<RowConstraintsmaxHeight="40.0" minHeight="10.0" vgrow="SOMETIMES" />

<RowConstraintsmaxHeight="40.0" minHeight="10.0" vgrow="SOMETIMES" />

</rowConstraints>

<children>

<Label text="Фамилия" />

<Label text="Имя" GridPane.rowIndex="1" />

<Label text="Отчество" GridPane.rowIndex="2" />

<TextFieldfx:id="surname" maxWidth="90.0" GridPane.columnIndex="1" />

<TextFieldfx:id="name" maxWidth="90.0" GridPane.columnIndex="1" GridPane.rowIndex="1" />

<TextFieldfx:id="ot" maxWidth="90.0" GridPane.columnIndex="1" GridPane.rowIndex="2" />

<Button mnemonicParsing="false" onAction="#End" text="Отмена" GridPane.rowIndex="3" />

<Button mnemonicParsing="false" onAction="#ADD" text="Добавить" GridPane.columnIndex="1" GridPane.rowIndex="3" />

</children>

</GridPane>

Приложение B - Верстка главного окна

packageview;

import javafx.collections.ObservableList;

import javafx.fxml.FXML;

import javafx.scene.control.ComboBox;

import javafx.scene.control.TextField;

import model.Person;

import javax.swing.*;

public class ChangeWinController {

inteditingIndex;

@FXML

TextFieldname;

@FXML

TextFieldsurname;

@FXML

TextFieldot;

ПриложениеB -КлассChangeWinController, лист 1

ComboBox<Person>stud;

ComboBox<Person>kurator;

private MainWinControllerv;

@FXML

public void init(ObservableList<Person>personList , ComboBox<Person> stud, MainWinController c){

v = c;

this.stud= stud;

}

@FXML

public void ini(ObservableList<Person>kuratorList , ComboBox<Person>kurator, MainWinController c){

v = c;

this.kurator= kurator;

}

@FXML

private void ADD(){

Person fam = new Person(surname.getText(),name.getText(),ot.getText());

if(surname.getText().equals("") || name.getText().equals("") || ot.getText().equals("")){

JOptionPane.showMessageDialog(null, "Введитевседанные");

}

else{

Data.personList.add(fam);

v.close();}

}

@FXML

private void Add(){

Person fam = new Person(surname.getText(),name.getText(),ot.getText());

if(surname.getText().isEmpty() || name.getText().isEmpty() || ot.getText().isEmpty()){

JOptionPane.showMessageDialog(null, "Введитевседанные");

}

else{

Data.kuratorList.add(fam);

v.close();}

}

@FXML

private void End(){

v.close();

}

}

Приложение В

Класс ChangeWinController

.label {

-fx-font-size: 11pt;

-fx-font-family: "Segoe UI Semibold";

-fx-text-fill: white;

-fx-opacity: 0.6;

}

.label-bright {

-fx-font-size: 11pt;

-fx-font-family: "Segoe UI Semibold";

-fx-text-fill: white;

-fx-opacity: 1;

}

.label-header {

-fx-font-size: 32pt;

-fx-font-family: "Segoe UI Light";

-fx-text-fill: white;

-fx-opacity: 1;

}

.table-view {

-fx-base: #1d1d1d;

-fx-control-inner-background: #1d1d1d;

-fx-background-color: #1d1d1d;

-fx-table-cell-border-color: transparent;

-fx-table-header-border-color: transparent;

-fx-padding: 5;

}

.table-view .column-header-background {

-fx-background-color: transparent;

}

.table-view .column-header, .table-view .filler {

-fx-size: 35;

-fx-border-width: 0 0 1 0;

-fx-background-color: transparent;

-fx-border-color:

transparent

transparent

derive(-fx-base, 80%)

transparent;

-fx-border-insets: 0 10 1 0;

}

.table-view .column-header .label {

-fx-font-size: 20pt;

-fx-font-family: "Segoe UI Light";

-fx-text-fill: white;

-fx-alignment: center-left;

-fx-opacity: 1;

}

.table-view:focused .table-row-cell:filled:focused:selected {

-fx-background-color: -fx-focus-color;

}

Приложение Г

Стилизация приложения

.button {

-fx-padding: 5 10 5 10;

-fx-border-color: #e2e2e2;

-fx-border-width: 2;

-fx-background-radius: 0;

-fx-background-color: #1d1d1d;

-fx-font-family: "Segoe UI", Helvetica, Arial, sans-serif;

-fx-font-size: 8pt;

-fx-text-fill: #d8d8d8;

-fx-background-insets: 0 0 0 0, 0, 1, 2;

}

.button:hover {

-fx-background-color: #3a3a3a;

}

.button:pressed, .button:default:hover:pressed {

-fx-background-color: white;

-fx-text-fill: #1d1d1d;

}

.button:focused {

-fx-border-color: white, white;

-fx-border-width: 1, 1;

-fx-border-style: solid, segments(1, 1);

-fx-border-radius: 0, 0;

-fx-border-insets: 1 1 1 1, 0;

}

.button:disabled, .button:default:disabled {

-fx-opacity: 0.4;

-fx-background-color: #1d1d1d;

-fx-text-fill: white;

}

.button:default {

-fx-background-color: -fx-focus-color;

-fx-text-fill: #ffffff;

}

.button:default:hover {

-fx-background-color: derive(-fx-focus-color,30%);

packagemodel;

importjavax.xml.bind.annotation.XmlElement;

importjavax.xml.bind.annotation.XmlRootElement;

importjava.util.List;

@XmlRootElement(name = "Список")

publicclassSpisokXML {

privateList<Spisok>list;

publicSpisokXML() {}

publicSpisokXML(List<Spisok>list) {

this.list= list;}

@XmlElement(name = "Студент")

publicList<Spisok>getList() {

returnlist;}

publicvoidsetList(List<Spisok>list) {

this.list= list;}

}

Приложение Д

Класс SpisokXML

packageview;

importmodel.SpisokXML;

importjavax.xml.bind.JAXBContext;

importjavax.xml.bind.Marshaller;

importjavax.xml.bind.Unmarshaller;

importjava.io.File;

publicclassmetod {

publicvoidhandleSave(){

SpisokXMLxml = newSpisokXML(Data.List);

try{

JAXBContextcontext = JAXBContext.newInstance(SpisokXML.class);

Marshallerm = context.createMarshaller();

m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);

m.marshal(xml, newFile("data.xml"));

} catch(Exceptione) { e.printStackTrace(); }

}

publicvoidhandleLoad(){

try{

JAXBContextcontext = JAXBContext.newInstance(SpisokXML.class);

Unmarshallerum = context.createUnmarshaller();

SpisokXMLxml = (SpisokXML) um.unmarshal(newFile("data.xml"));

Data.List.clear();

Data.List.addAll(xml.getList());

} catch(Exceptione) { e.printStackTrace(); }

}

}

Приложение D - Методы сохранения и загрузки в классе metod

@FXML

public void Print(){

PrinterJob job = PrinterJob.createPrinterJob();

Printer printer = job.getPrinter();

PageLayoutpageLayout = printer.getDefaultPageLayout();

PageLayoutnewpageLayout = printer.createPageLayout(pageLayout.getPaper(), PageOrientation.LANDSCAPE, Printer.MarginType.DEFAULT);

TableView g = new TableView();

g.setItems(Data.List);

g.getColumns().addAll(studColumn, temaColumn, kuratorColumn);

VBox t = new VBox();

Label cat = new Label("Списокстудентов");

t.getChildren().addAll(cat,g);

if (job != null)

if (job.printPage(newpageLayout,t))

job.endJob();

}