Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
4
Добавлен:
27.11.2024
Размер:
724.76 Кб
Скачать

Рис. 2. Индивидуальные задания.

Вопросы для самоконтроля

1.Что такое наследование в классах?

2.Как работает переопределение методов в наследуемых классах?

3.Какая аннотация отвечает за переопределение метода в Java?

4.Какие параметры передаются в метод paint при его вызове?

5.Какие переменные называют полями или свойствами класса?

6.Что такое инкапсуляция?

7.Перечислите основные методы для рисования графических при-

митивов в Java.

8. Как добавить элемент в контейнер в Java?

11

9.Опишите работу с блоком прослушивания события нажатия на клавиатуру.

10.Для каких целей используется метод repaint?

Время, отведенное на выполнение работы

Работа должна быть выполнена за два занятия – 4 часа.

Отчет сдается на последнем занятии.

12

Практическая работа №3.

Создание элементов управления SWING на языке Java.

Введение

Цель работы: знакомство с элементами управления SWING на при-

мере отображения динамических данных в таблице jTable.

Основные понятия

Практически каждое приложение Windows, за исключением самых простейших, имеет такие органы управления, как меню, кнопки, поля ре-

дактирования текстовой информации, переключатели с независимой и за-

висимой фиксацией и списки. Кроме того, приложение Windows может со-

здавать диалоговые панели, содержащие перечисленные выше и другие органы управления.

В окне апплета вы также можете разместить некоторые из перечис-

ленных выше органов управления, а именно:

кнопки;

переключатели с независимой фиксацией;

переключатели с зависимой фиксацией;

статические текстовые поля;

однострочные и многострочные поля редактирования текста;

списки;

полосы просмотра.

Самый большой и едва ли приятный сюрприз для вас это то, что при размещении перечисленных органов управления в окне апплета вы не мо-

жете задать для них точные координаты и размеры. Размещением занима-

ется система управления внешним видом Layout Manager, которая распо-

лагает органы управления по-своему. Вы, однако, можете задавать не-

сколько режимов размещения (последовательное, в ячейках таблицы и так

13

далее), но не координаты или размеры. Это сделано для обеспечения неза-

висимости приложений Java от платформ, на которых они выполняются.

Органы управления создаются как объекты классов, порожденных от класса Component (рис. 3). Поэтому в дальнейшем мы будем называть ор-

ганы управления компонентами.

Рис. 3. Взаимосвязь классов органов управления в приложениях Java.

Класс Button позволяет создавать стандартные кнопки. Если вам нужна нестандартная кнопка (например, графическая кнопка), вы можете создать ее на базе класса Canvas.

Для создания переключателей с независимой или зависимой фикса-

цией предназначен класс CheckBox.

С помощью класса Label вы можете создавать в окне апплета тексто-

вые строки, например, надписи для других компонент. Эти строки не ре-

дактируются пользователем.

Класс List, как нетрудно догадаться из названия, предназначен для создания списков.

С помощью класса Scrollbar вы можете создавать полосы просмотра,

которые используются, в частности, могострочными полями редактирова-

ния текста.

Класс TextComponent служит базовым для двух других классов -

TextField и TextArea. Первый из них предназначен для создания одно-

14

строчных редакторов текста, второй - для создания многострочных редак-

торов текста.

Для того чтобы понять, как компоненты размещаются на поверхно-

сти окна апплета системой Layout Manager, рассмотрим другую взаимо-

связь классов Java, показанную на рис. 4.

Рис. 4. Компоненты и контейнеры.

Класс Component служит в качестве базового класса для класса

Container. Объекты этого класса, которые мы будем называть контейнера-

ми, могут содержать объекты классов Component и Container. Таким обра-

зом, внутри контейнеров могут находиться компоненты и другие контей-

неры.

Класс Applet, так же как и другие классы, произведенные от класса

Container, является контейнером. Это означает, что апплет может содер-

жать в себе компоненты (такие как органы управления) и контейнеры.

Заметим, что класс Applet наследуется от класса Container через класс Panel, в котором определены методы системы Layout Manager.

Настраивая соответствующим образом Layout Manager, мы можем менять стратегию размещения компонент внутри окна апплета.

В окне апплета вы можете создать несколько объектов класса Panel (панелей), разделяющих окно на части. Для каждой такой панели можно

15

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

Существует такая парадигма в программирование Модель-Вид-

Контроллер. Если коротко, то она позволяет разделить весь код на не-

сколько больших функциональных блоков, код которых отделен макси-

мально друг от друга. Java Swing в реализации своих компонентов также пытается следовать данной парадигме. В результате чего компоненты, та-

кие как JTable, внутри себя разделяют код, который занимается только от-

рисовкой и код, который занимается поставкой данных для отрисовки.

Технология выполнения работы

1.Добавьте таблицу jTable на форму.

2.Настройте таблицу средствами IDE NetBeans.

3.Создайте собственную модель таблицы, наследуя класс от

DefaultTableModel.

4.Настройте методы обработки событий таблицы.

5.Рассмотрите методы добавления и вставки строк в таблицу.

6.Создайте приложение, реализующее добавление данных из тек-

стовых полей в таблицу.

Вопросы для самоконтроля

1.Перечислите компоненты управления в Java?

2.Опишите взаимосвязь классов в Java, отвечающих за графиче-

ский интерфейс пользователя.

3.Какую парадигму используют компоненты Java Swing?

4.Опишите объект jTable.

5.Что такое модель таблицы в Java?

6.Как производится настройка jTable средствами IDE NetBeans?

16

7. Как производится настройка jTable при помощи класса

DefaultTableModel?

8.За что отвечает и как настраивается метод isCellEditable?

9.Чем отличаются методы insertRow и addRow в Java?

10.Как удалить выделенную строку в таблице jTable?

Время, отведенное на выполнение работы

Работа должна быть выполнена за четыре занятия – 8 часов.

Отчет сдается на последнем занятии.

17

Практическая работа №4. Работа с базами данных на языке Java.

Введение

Цель работы: изучение основных принципов работы с базами дан-

ных средствами Java, применение основных операций: создание, чтение,

изменение и удаление.

Основные понятия

Для работы с базами данных подключают специализированную биб-

лиотеку классов для конкретной СУБД - ORACLE, MySQL и т.п. или ис-

пользуют интерфейс ODBC.

В обоих случаях применяется технология JDBC (Java Database Connectivity), представляющая собой программный интерфейс для выпол-

нения SQL-запросов к реляционным базам данных из Java-программ. Биб-

лиотека классов JDBC находится в пакете java.sql.

Для соединения с базой данных MySQL используется MySQL

Connector/J (http://dev.mysql.com/downloads/connector/j/). Этот файл нужно поместить в каталог расширений JRE, например, в C:\Program Files\Java\jre8\lib\ext.

Рассмотрим простой пример работы с СУБД MySQL. Консольное приложение печатает все фамилии из таблицы сотрудников.

Сначала подключим нужные пакеты. Из пакета MySQL достаточно подключить единственный класс - Driver.

import java.sql.*;

import com.mysql.jdbc.Driver;

import java.io.*;

В функции main определим переменную типа Connection. Объект

Connection нужен для создания соединения с базой данных.

18

Дальнейший код помещен в блок try, поскольку некоторые из ис-

пользуемых методов могут вызывать исключения.

Регистрируем драйвер с помощью статического метода registerDriver

класса DriverManager.

DriverManager.registerDriver(new

com.mysql.jdbc.Driver());

Создаем соединение с базой данных. Обратите внимание, мы не со-

здаем объект с помощью операции new. Метод getConnection сам создает объект и возвращает ссылку на него.

c = DriverManager.getConnection

("jdbc:mysql://localhost/mycross", "root", "");

Параметры метода getConnection:

1.Строка подключения:

jdbc:mysql - имя протокола подключения,

localhost - имя хоста,

mycross - имя базы данных.

2.Логин для подключения к базе данных.

3.Пароль для подключения к базе данных.

После успешного подключения создаем объект Statement, который будет использоваться для выполнения запросов к базе данных (здесь тоже не используем new):

Statement s = c.createStatement();

Объявляем переменную ResultSet для получения результата запроса:

ResultSet rs = null;

Выполняем запрос:

rs = s.executeQuery("SELECT * FROM personal");

Заметим, что для выполнения различных запросов, связанных с из-

менением данных (INSERT, UPDATE, DELETE и пр.), следует применять

метод executeUpdate, например,

19

s.executeUpdate("DELETE FROM personal");

Затем в цикле последовательно перебираем и печатаем строки ре-

зультата:

while( rs.next() )

{

str=rs.getString("name");

System.out.println(str);

}

Перед выходом из программы закрываем объекты ResultSet и

Connection.

Технология выполнения работы

1.Рассмотрите работу с датой и временем в Java.

2.Рассмотрите переключение между фреймами и панелями.

3.Создайте подключение базы данных средствами Open Database

Connectivity.

4.Настройте мост JDBC-ODBC.

5.Создайте SQL-запросы на добавление, изменение и чтение дан-

ных из БД.

6. Создайте приложения, реализующее добавление и выгрузку дан-

ных из БД в таблицу.

Вопросы для самоконтроля

1.Опишите классы Calendar и Date.

2.Для чего используется класс SimpleDateFormat?

3.Как скрыть или отобразить фрейм в Java?

4.Что такое JDBC?

5.Что такое ODBC?

6.Для чего используют коннекторы БД в Java?

20