Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
KR_STA_Valera.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
1.61 Mб
Скачать

4.5 Розробка класу дляреалізації графічного інтерфейсу

Клас дляреалізації графічного інтерфейсу виконує наступні задачі:

1. Створює 4 вікна за допомогою бібліотеки Swing: вікно відображення стану ТП (головне вікно), інформаційне вікно, вікно установки завдання, вікно відображення графіків перехідних процесів.

2. Обробляє події компонентів 4 вікон.

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

Структура класу наведена на рисунку 4.8.

Рисунок 4.8 – Структура класу реалізації графічного інтерфейсу

Основний клас для реалізації діалогового вікна в бібліотеках Java – JFrame. У Java під фреймом (frame) розуміється діалогове вікно верхнього рівня з заголовком, стандартної рамкою і кнопками – відкрити/закрити/ згорнути.

Розглянемо метод ініціалізації головного вікна прогграми за допомогоюбібліотеки swiXML. Наступний код ініціалізує головне вікно програми і розміщує на ньому всі описані у відповідному XML файлі компоненти. Даний метод (і всі методи ініціалізації вікна) повинен бути викликаний в конструкторі класу GUI.

Конструктор класу GUI показаний в додатку Г.

Клас Graphпоказаний в додатку Д.

Висновок

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

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

Список використаної літератури

  1. А.О.Стопакевич. Методичні вказівки для виконання курсової роботи «Сучасні комп’ютерні технології», 2013 – Одеса: ОНАЗ ім. О.С. Попова, 2013. – 37 с.

  2. Середа розробки BlueJ> = 3 (http://www.bluej.org/)

  3. SwiXML 2.01 (http://www.swixml.org/)

Додаток а. Програмний код для обробки xml файлу з налаштуваннями програми

import javax.xml.parsers.DocumentBuilderFactory;

import javax.xml.parsers.DocumentBuilder;

import org.w3c.dom.Document;

import org.w3c.dom.NodeList;

import org.w3c.dom.Node;

import org.w3c.dom.Element;

import java.io.File;

import org.math.array.util.*;

import java.lang.Math.*;

import org.math.array.DoubleArray.*;

public class XMLInterface

{

private static double dt;

private static int inputs, outputs, xsize;

private static double[][] ad, bd, c, d, ar, br, cr;

private static int[] uplimits, downlimits;

private static double[] unom, ynom, fmax;

private final String OBJECT_FILE="data/object.xml";

public static double getDt() {return dt;}

public static int getInputs() {return inputs;}

public static int getOutputs() {return outputs;}

public static int getXsize() {return xsize;}

public static int[] getUplimits() {return uplimits;}

public static int[] getDownlimits() {return downlimits;}

public static double[] getUnom() {return unom;}

public static double[] getYnom() {return ynom;}

public static double[] getFmax() {return fmax;}

public static double[][] getAd() {return ad;}

public static double[][] getBd() {return bd;}

public static double[][] getC() {return c;}

public static double[][] getD() {return d;}

public static double[][] getAr() {return ar;}

public static double[][] getBr() {return br;}

public static double[][] getCr() {return cr;}

/** *Метод для завантаження матриці в текстовому поданні до двовимірний

масив Java (s–рядок, columnDelimiter – роздільник cтовпців,

rowDelimiter – роздільник рядків)

*/

private static double[][] readStringDouble (String s, String columnDelimiter, String rowDelimiter)

{

double[][] array;

String[]rows = s.split (rowDelimiter);

array = new double [rows.length][];

for (int i=0; i<rows.length;i++)

{

String[]cols = rows[i].split (columnDelimiter);

array[i]= new double[cols.length];

for (int j=0;j<cols.length;j++)

{

array[i][j]=Double.parseDouble(cols[j]);

}

}

return array;

}

public XMLInterface()

{

try

{

File fXmlFile = new File (OBJECT_FILE);

DocumentBuilderFactory dbFactory =DocumentBuilderFactory.newInstance();

DocumentBuilder dBuilder=dbFactory.newDocumentBuilder();

Document doc=dBuilder.parse (fXmlFile);

doc.getDocumentElement ().normalize ();

NodeList Nlc; Element Elements; String s;

Nlc=doc.getElementsByTagName ("dt"); Elements = (Element) Nlc.item(0);

s = Elements.getChildNodes ().item (0).getNodeValue ().trim ();

this.dt=Double.valueOf (s);

Nlc=doc.getElementsByTagName ("inputs"); Elements = (Element) Nlc.item(0);

s = Elements.getChildNodes ().item (0).getNodeValue ().trim ();

this.inputs=Integer.valueOf (s);

Nlc=doc.getElementsByTagName ("outputs"); Elements = (Element) Nlc.item(0);

s = Elements.getChildNodes ().item (0).getNodeValue ().trim ();

this.outputs=Integer.valueOf (s);

Nlc=doc.getElementsByTagName ("xsize"); Elements = (Element) Nlc.item(0);

s = Elements.getChildNodes ().item (0).getNodeValue ().trim ();

this.xsize=Integer.valueOf (s);

Nlc=doc.getElementsByTagName ("ar"); Elements = (Element) Nlc.item(0);

s = Elements.getChildNodes ().item (0).getNodeValue ().trim ();

this.ar=readStringDouble (s, "\t", "\n");

Nlc=doc.getElementsByTagName ("br"); Elements = (Element) Nlc.item(0);

s = Elements.getChildNodes ().item (0).getNodeValue ().trim ();

this.br=readStringDouble (s, "\t", "\n");

Nlc=doc.getElementsByTagName ("cr"); Elements = (Element) Nlc.item(0);

s = Elements.getChildNodes ().item (0).getNodeValue ().trim ();

this.cr=readStringDouble (s, "\t", "\n");

Nlc=doc.getElementsByTagName ("ad"); Elements = (Element) Nlc.item(0);

s = Elements.getChildNodes ().item (0).getNodeValue ().trim ();

this.ad=readStringDouble (s, "\t", "\n");

Nlc=doc.getElementsByTagName ("bd"); Elements = (Element) Nlc.item(0);

s = Elements.getChildNodes ().item (0).getNodeValue ().trim ();

this.bd=readStringDouble (s, "\t", "\n");

Nlc=doc.getElementsByTagName ("c"); Elements = (Element) Nlc.item(0);

s = Elements.getChildNodes ().item (0).getNodeValue ().trim ();

this.c=readStringDouble (s, "\t", "\n");

Nlc=doc.getElementsByTagName ("d"); Elements = (Element) Nlc.item(0);

s = Elements.getChildNodes ().item (0).getNodeValue ().trim ();

this.d=readStringDouble (s, "\t", "\n");

this.uplimits = new int [this.outputs];

Nlc = doc.getElementsByTagName ("uplimits");

Elements = (Element) Nlc.item(0);

s= Elements.getChildNodes ().item (0).getNodeValue().trim ();

String [] ss;

ss=s.split(",");

for (int i=0;i<ss.length;i++)

this.uplimits[i]=Integer.valueOf (ss[i].trim());

this.downlimits = new int [this.outputs];

Nlc = doc.getElementsByTagName ("downlimits");

Elements = (Element) Nlc.item(0);

s= Elements.getChildNodes().item (0).getNodeValue().trim ();

ss=s.split(",");

for (int i=0;i<ss.length;i++)

this.downlimits[i]=Integer.valueOf (ss[i].trim());

this.unom=new double[this.inputs];

this.ynom=new double[this.inputs];

this.fmax=new double[this.inputs];

this.unom = new double [this.outputs];

Nlc = doc.getElementsByTagName ("unom");

Elements = (Element) Nlc.item(0);

s= Elements.getChildNodes().item (0).getNodeValue().trim ();

ss=s.split(",");

for (int i=0;i<ss.length;i++)

this.unom[i]=Double.valueOf (ss[i].trim());

this.ynom = new double [this.outputs];

Nlc = doc.getElementsByTagName ("ynom");

Elements = (Element) Nlc.item(0);

s= Elements.getChildNodes().item (0).getNodeValue().trim ();

ss=s.split(",");

for (int i=0;i<ss.length;i++)

this.ynom[i]=Double.valueOf (ss[i].trim());

this.fmax = new double [this.outputs];

Nlc = doc.getElementsByTagName ("fmax");

Elements = (Element) Nlc.item(0);

s= Elements.getChildNodes().item (0).getNodeValue().trim ();

ss=s.split(",");

for (int i=0;i<ss.length;i++)

this.fmax[i]=Double.valueOf (ss[i].trim());

// initialise instance variables

}

catch (Exception e)

{

System.out.println (e.getMessage());

e.printStackTrace();

}

}

}

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]