Научная статья на тему 'Побудова графічного контенту застосунків з використанням JavaFX і Swing компонентів і даних, взятих із баз даних'

Побудова графічного контенту застосунків з використанням JavaFX і Swing компонентів і даних, взятих із баз даних Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
175
32
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
застосунок / графічний інтерфейс / база даних / JavaFX / Swing / application / GUI / database / JavaFX / Swing

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — В. П. Карашецький

Розглянуто можливості сумісного використання компонентів графічного інтерфейсу користувача, які застосовуються в платформі JavaFX та бібліотеці графічних компонентів Swing, для розроблення настільних і мережевих крос-платформних застосунків. На конкретному прикладі здійснено під'єднання застосунку до створеної бази даних із використанням СКБД MySQL. Модифіковано JavaFX початкові коди для наявних видів діаграм для використання даних, одержаних з таблиць бази даних, які використано для побудови насичених застосунків з графічним контентом. Представлено декілька побудованих застосунків.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Building of Graphical Content Applications with Java FX, Swing Components and Data Obtained from Database

The possibility for compatible using of components of the graphical user interface applied in JavaFX platform and library Swing are considered for development of the desktop and network cross-platform applications. In the specific example of the application to connect to a database created using DBMS MySQL is made. JavaFX source code for existing types of charts to use data obtained from database tables to build rich applications with graphical content is modified. Several built applications are presented.

Текст научной работы на тему «Побудова графічного контенту застосунків з використанням JavaFX і Swing компонентів і даних, взятих із баз даних»

5. Слшчук А.М. Нелшшш поперечш коливання пружного рухомого канату i методи i'x дос-лщження / А.М. Слшчук // Жсове господарство, люова, паперова i деревообробна промисловiсть : мiжвiдомч. наук.-техн. зб. - Львш : Вид-во УкрДЛТУ. - 2003. - Вип. 28. - С. 89-94.

6. Слшчук А.М. Нелшшш поперечш коливання ^j^mi рухомоi балки / А.М. Слшчук // Оптишзащя виробничих процеив i технiчний контроль у машинобудуванш та приладобудуван-ш. - Львгв, 2004. - № 515. - С. 47-51.

7. Chen L.Q. Analysis and control of transverse vibrations of axially moving strings / L.Q. Chen // Appl. Mech. Rev. - 2005. - Vol. 58.2. - Pp. 91-116.

Верхола И.И. Динамика одномерных гибких систем, которые характеризуются продольной скоростью движения, с учетом действия сосредоточенных сил

Исследовано влияние скорости движения и сосредоточенных сил на нелинейные поперечные колебания одномерных гибких элементов систем привода и транспортировки. Математическими моделями динамики указанного класса систем являются краевые задачи для нелинейных дифференциальных уравнений с производными частей, невозмущенные аналоги которых содержат смешанную производную линейной и часовой переменных. Указанное не позволяет для их анализа применить известные асимптотические методы нелинейной механики. Путем обобщения идеи описания основных параметров динамики процесса на базе волновой теории движения [1] получено соотношение для определения амплитудно-частотной характеристики (АЧХ) колебаний гибких систем для случая дискретного распределения сил.

Ключевые слова: гибкий элемент, нелинейные колебания, сосредоточенная сила.

Verkhola I.I. The Dynamics of One-dimensional Flexible Systems Characterized by Longitudinal Speed of Motion Considering the Action of Concentrated Forces

The influence of speed and concentrated forces on the nonlinear transversal vibrations of one-dimensional flexible elements of drive systems and transportation are explored. The mathematical models of dynamics of the indicated class of systems are regional tasks for nonlinear differential equalizations with the derivatives of part, the undisturbed analogues of that contain the mixed derivative of linear and time variables. The facts mentioned above do not allow applying the well-known asymptotic methods of nonlinear mechanics for their analysis. By generalizing the idea of a description of the basic parameters of the dynamic process based on the wave theory of movement, correlations for determination of amplitude-frequency characteristic (AFC) of vibrations of flexible systems for the case of discrete distribution of forces are obtained.

Key words: flexible element, one-dimensional flexible elements nonlinear vibrations, concentrated force.

УДК 681.3.068 Доц. В.П. Карашецький, канд. техн. наук -

НЛТУ Украти, м. Львiв

ПОБУДОВА ГРАФ1ЧНОГО КОНТЕНТУ ЗАСТОСУНК1В З ВИКОРИСТАННЯМ JAVAFX I SWING КОМПОНЕНТ1В I ДАНИХ, ВЗЯТИХ 1З БАЗ ДАНИХ

Розглянуто можливост сушсного використання компонентов графiчного штер-фейсу користувача, як застосовуються в платформi JavaFX та бiблiотецi графiчних компонешпв Swing, для розроблення настшьних i мережевих крос-платформних застосунгав. На конкретному прикладi здшснено шд'еднання застосунку до створеши бази даних iз використанням СКБД MySQL. Модифшовано JavaFX початковi коди для наяв-них видiв дiаграм для використання даних, одержаних з таблиць бази даних, яга вико-ристано для побудови насичених застосунгав з графiчним контентом. Представлено де-галька побудованих застосунгав.

Ключовi слова: застосунок, графiчний интерфейс, база даних, JavaFX, Swing.

Технолопя JavaFX - Ha6ip графiчних i медаа-пакетш, якi дають змогу розробникам створювати клieнтськi настiльнi та мережевi застосунки, що фун-кцiонують на рiзних платформах. Програмний код JavaFX застосунка може по-силатися на Application Programming Interface (API) будь-яко1 бiблiотеки Java.

Починаючи з JavaFX 2.2, вс пiзнiшi версiï повнiстю штегроваш з Java SE 7 Runtime Environment (JRE) i комплектом Java Development Kit (JDK). Ос-кшьки JDK доступний для всiх основних настшьних платформ (Windows, Mac OS X i Linux), то JavaFX застосунки, скомтльоваш в JDK 7, можуть працювати на даних платформах. Крос-платформна сумiснiсть дае змогу використовувати досввд узгодженого виконання застосунк1в для JavaFX розробнитв i користува-чiв. Платформа JavaFX призначена [1] для забезпечення застосункiв такими складними функциями графiчного iнтерфейсу користувача, як плавна ашмащя, веб-перегляд, вiдтворення аудiо та вщео, стилi на основi каскадних таблиць стилiв CSS. Однiею з важливих характеристик JavaFX 2.2 i всх пiзнiших версiй е ïï сумiснiсть з бiблiотекою графiчних компоненпв Swing. Iснуючi Swing застосунки можуть бути збагачеш з допомогою таких нових можливостей JavaFX, як насичене графiчне медiа вiдтворення i вбудований веб контент.

!нтегращя JavaFX в Swing застосунки. JavaFX Software Development Kit (SDK) мктить в пакета javafx.embed. swing клас JFXPanel, який дае змогу вставляти JavaFX вмкт в Swing застосунки. При спшснуванш Swing i JavaFX даних в одному застосунку можливе виникнення таких двох ситуацiй ïх взаемодiï:

• змша JavaFX даних шщюеться змiною Swing даних;

• змша Swing даних iнiцiюeться змшою JavaFX даних.

У першому випадку JavaFX даш повиннi бути доступш тальки в потоцi JavaFX Application Thread (JAT). Всякий раз, коли необхвдно змшити JavaFX данi, потрiбно охопити код в об'ектi Runnable i викликати метод runLater():

P latform. ru n Later(new Runnable() { @Override public void run() {

// Код для змш JavaFX даних.

}

});

У другому випадку Swing дат повинт бути змшеш тiльки в потощ Event Dispatching Thread (EDT) i тсля цього roTpi6TO охопити код в об'eктi Runnable i викликати метод invokeLater(): SwingUtilities.invokeLater(new Runnable() { @Override public void run() {

//Код для змш Swing даних.

}

});

У багатьох проектах використовують Swing застосунки, що мають справу з таблицями. Розглянемо, як можна поеднати табличний компонент JTable з бiблiотеки Swing i побудову JavaFX пстограми в одному застосунку, щоб забез-печити барвисткть iлюстрацiï табличних даних, одержаних з бази даних. Для цього внесемо змши у веб-застосунок [2], який складаеться з двох фаМв:

• SampleTableModel.java;

• SwingInterop.java.

Клас SampleTableModel тепер успадковуе абстрактний клас AbstractTab-leModel i визначае модель таблицi для воображения даних однieí з таблиць (result 1) бази даних contest, що мiстить даш вступних кампанiй до НЛТУ Украши за перiод 2010-2014 рр. Використовуючи СКБД MySQL, у конструкторi класу SampleTableModel здайснюемо пiд'еднання до бази даних contest i запит до таб-лицi result1: public SampleTableModel() {

try {

DriverManager.registerDriver (new com.mysql.jdbc.Driver());

String url="jdbc: mysql://localhost:3306/contest";

Connection conn1=DriverManager.getConnection (url,"root","ppp");

Statement st1=con n 1 .createStatement();

ResultSet rs1=st1.executeQuery ("SELECT * FROM result1");

ResultSetMetaData md1=rs1 .getMetaData();

int colums1=md1.getColumnCount();

int j=0;

while (rs1 .next()) { data[j][0]=rs1 .getString (2);

for (int i= 3; i <= colums1; i++) {

data[j][i-2]=rs1 .getInt (i); }

j=j+1;

}

st1 .close(); conn1.close();

}

catch (SQLException e) { System.out.println (e);

}}

Щоб отримати данi для побудови пстограми, клас SampleTableModel модифiкуеться шляхом додавання ново1 змiнноí класу bcData i методу get-BarChartData(), який одержуе данi з таблицi result1 i повертае 1х у вiдповiдному формата для пстограми:

public class SampleTableModel extends AbstractTableModel { private static ObservableList<BarChart.Series> bcData; public ObservableList<BarChart.Series> getBarChartData() { if (bcData == null) {

bcData=FXCollections.<BarChart.Series>observableArrayList(); for (int row=0; row < getRowCount(); row++) {

ObservableList<BarChart.Data>series=FXCollections.<BarChart.Data>observableArrayListO; for (int column=1; column < getColumnCount(); column++) {

series.add (new BarChart.Data (getColumnName (column), getValueAt (row, column))); }

bcData.add (new BarChart.Series (series)); }}

return bcData;

}}

Клас SwingInterop створюеться як дочiрний вiд класу JApplet з метою додавання до нього об'екта класу JFXPanel i встановлення його графiчноí сцени, яка мктить JavaFX контент. Клас SwingInterop перевизначае метод init() для створення об'екта tableModel класу SampleTableModel i панелi контенту засто-сунка. В методi init() створюеться об'ект chartFxPanel класу JFXPanel для одер-жання JavaFX гiстограми i об'ект jsplitPane класу JsplitPane для одержання од-ночасно JavaFX гiстограми i таблищ. Пiсля пiдготовки графiчного iнтерфейсу Swing застосунка для надання JavaFX даних, наступним кроком е створення JavaFX сцени, що мiстить JavaFX контент. Оскшьки JavaFX сцена повинна бути створена в потощ JAT, то охоплюемо код в об'екп Runnable i передаемо його в метод Platform.runLater().

Д^ реалiзуемо метод createScene() i метод createBarChart(), який ство-рюе гiстограму i додае прослуховувач змш до таблицi. Треба зазначити, що будь-яка змiна JavaFX даних повинна ввдбуватися в потоцi JAT. З ще1 причини, в обробнику подш, який оновлюе JavaFX дiаграму, охоплюемо код в об'екп Runnable i передаемо його в метод Platform.runLater().

Реалiзацiя методу createBarChart() мае такий вигляд: private BarChart createBarChart() { CategoryAxis xAxis=new CategoryAxis();

xAxis.setCategories (FXCollections.<String>observableArrayList (tableModel. getColumnNames()));

xAxis.setLabel ("PiK");

double tickUnit=tableModel.getTickUnit();

NumberAxis yAxis=new NumberAxis();

yAxis.setTickUnit (tickUnit);

yAxis.setLabel ("Кiлькiсть студентiв");

final BarChart chart=new BarChart (xAxis, yAxis, tableModel.getBarChartData());

tableModel.addTableModelListener (new TableModelListener() {

public void tableChanged (TableModelEvent e) {

if (e.getType() == TableModelEvent.UPDATE) {

final int row=e.getFirstRow();

final int column=e.getColumn();

final Object value=((SampleTableModel) e.getSource()).getValueAt (row, column); Platform.runLater (new Runnable() { public void run() {

XYChart.Series<String, Number> s=(XYChart.Series<String, Number>) chart.getData().get (row); BarChart.Data data=s.getData().get (column); data.setYValue (value);

}}); }}

});

return chart; }

На рис. 1 представлено веб-застосунок iз використанням вертикально1 гiстограми.

Рис. 1. Веб-застосунок iз використанням вертикальной гктограми

Модиф^ючи iснуючi 1ауаБХ вихiднi коди для шших видiв дiаграм [3], можна побудувати такi настiльнi та мережевi застосунки (рис. 2).

Висновки. Технолог1я 1ауаБХ надае широкi можливост для побудови настiльних i мережевих крос-платформних застосункiв з високоефективним су-часним iнтерфейсом користувача, що тдтримуе графiчний контент. Модифка-цiя шнуючих вихiдних 1ауаБХ кодiв побудов дiаграм з метою пiд,еднання до баз даних дае змогу розробляти насичеш застосунки з використанням графiч-них залежностей, побудованих на основi даних, одержаних з таблиць баз даних.

а) горизонтальное гктограми б) бульбашково1 Ыаграми

в) Ыаграми поверхонь г) лтшног Ыаграми

д) круговое Ыаграми д) точковог Ыаграми Рис. 2. Застосунки is використанням тших вид^в д^аграм Лггература

1. Машнин Т.С. JavaFX 2.0: разработка RIA-приложений / Т.С. Машнин. - СПб. : Изд-во "БХВ-Петербург", 2012. - 320 с. - (Профессиональное программирование).

2. Fedortsova I., Hilderbrandt N., Northover S. JavaFX Interoperability. Release 8. E50477-01, Oracle, Java Platform, Standard Edition (Java SE) 8, Client Technologies, JavaFX, 2014. - 110 с.

3. Redko A., Fedortsova I. Working with JavaFX UI Componets. Release 8. E47848-02, Oracle, Java Platform, Standard Edition (Java SE) 8, All Books, JavaFX, 2014. - 442 с.

Карашецкий В.П. Построение графического контента приложений с использованием JavaFX и Swing компонентов и данных, взятых из баз данных

Рассмотрены возможности совместного использования компонентов графического интерфейса пользователя, которые применяются в платформе JavaFX и библиотеке графических компонентов Swing, для разработки настольных и сетевых кросс-платформенных приложений. На конкретном примере осуществлено подключение приложения к созданной базе данных с применением СУБД MySQL. Модифицированы JavaFX исходники для существующих видов диаграмм с целью использования данных, полученных из таблиц базы данных, для построения насыщенных приложений с графическим контентом. Представлены несколько построенных приложений.

Ключевые слова: приложение, графический интерфейс, база данных, JavaFX, Swing.

Karashetskyy V.P. Building of Graphical Content Applications with Java FX, Swing Components and Data Obtained from Database

The possibility for compatible using of components of the graphical user interface applied in JavaFX platform and library Swing are considered for development of the desktop and network cross-platform applications. In the specific example of the application to connect to a database created using DBMS MySQL is made. JavaFX source code for existing types of charts to use data obtained from database tables to build rich applications with graphical content is modified. Several built applications are presented.

Key words: application, GUI, database, JavaFX, Swing.

УДК 330.341.1 Здобувач С.С. Тригоб'юк1 - НУ "Львiвська полшехшка"

МОДЕЛЬ ОЦ1НЮВАННЯ МОМЕНТУ ПРИЙНЯТТЯ СТРАТЕГ1ЧНИХ УПРАВЛШСЬКИХ Р1ШЕНЬ НА МАЛИХ I СЕРЕДН1Х П1ДПРИ6МСТВАХ

Розглянуто проблеми стратепчного планування на малих i середшх шд-приемствах. Запропоновано використовувати систему стратепчного планування для стратепчного управлшня шдприемства. Наведено мультиплшативну модель розрахун-ку шпульсу пiдприемства, що дасть змогу щентифшувати найоптимальшший момент прийняття стратегiчних управлшських ршень щодо вибору виду стратепчного управлшня i доцiльнiсть переходу до впровадження системи стратегiчного планування. 1м-пульс враховуе потенщал шдприемства, динамшу сектора та переломнi змши макросе-редовища.

Ключовi слова: система стратепчного планування, iмпульс пiдприемства, динамь ка сектора, малий i середнiй бiзнес.

Постановка проблеми. Окрш бюджетування, формальне планування на малих 1 середшх приладобуд1вних шдприемствах не здшснюють. Також можна стверджувати про практичну вщсутнкть довгострокового стратепчного планування. Натомкть ввдбуваеться перманентний пошук вигоди на основ1 розумшня власного потенщалу шдприемства й мошторингу зовшшшх тенденцш. Таким чином, простежуються ознаки управлшня за ранжуванням стратепчних задач (УРСЗ), тобто шукаються можливосп у зовшшньому середовищ з подальшою адаптащею до нових умов 1з намаганням скористатися конкурентною перевагою ринкового, технолопчного чи фшансового характеру. Основне завдання такого управлшня - отримати максимальну вигоду ввд кнуючо! кон'юнктури. Коли завершиться перюд дц сприятливих фактор1в для розвитку 1 випдно! можли-вост1 на ринку, то буде здшснено пошук ново!' шш!

Для невеликих шдприемств, як1 створеш тальки для швидкого отриман-ня прибутку, достатньо мати тшьки УРСЗ. Вони не мають довгострокового ба-жання працювати на ринку та вибудовувати б1знес 1з врахуванням специфжи сектора. Незважаючи на швидккть та оперативнкть реакцп на нов1 можливосп, УРСЗ не е досконалою моделлю стратепчного планування. Передусш, такий вид управлшня оркнтуеться на цш, що продиктован ззовш Кр1м цього, за зростання масштаб1в шдприемства власником чи кер1вником шдприемства не-

1 Наук. кергвник: проф. Ж.В. Поплавська, д-р екон. наук

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.