Главная страница

Java. Полное руководство. 8-е издание. С. Н. Тригуб Перевод с английского и редакция


Скачать 25.04 Mb.
НазваниеС. Н. Тригуб Перевод с английского и редакция
АнкорJava. Полное руководство. 8-е издание.pdf
Дата28.02.2017
Размер25.04 Mb.
Формат файлаpdf
Имя файлаJava. Полное руководство. 8-е издание.pdf
ТипДокументы
#3236
страница89 из 90
1   ...   82   83   84   85   86   87   88   89   90
import javax.swing.tree.*;
/*


*/
public class JTreeDemo extends JApplet {
JTree tree;
JLabel jlab;
public void init() {
try {
SwingUtilities.invokeAndWait(
new Runnable() {
public void r u n () {
make G U I ();
}
}
)
;
} catch (Exception exc) {
System.out.println("Can't create because of " + exc);
// Невозможно создать из-за " + exc);
}
}
private void mak e G U I () {
// Создаем верхний узел дерева top =
new DefaultMutableTreeNode("Options");
// Создаем поддерево "A".
DefaultMutableTreeNode a = new DefaultMutableTreeNode("A");
top.add(a);
DefaultMutableTreeNode al = new DefaultMutableTreeNode("Al");
a .add(al);
DefaultMutableTreeNode a2 = new DefaultMutableTreeNode("A2");
a .add(a2);

9 9 8 Часть III. Разработка программного обеспечения с использованием Java
// Создаем поддерево "В b = new В
t o p .add(b);
DefaultMutableTreeNode bl = new DefaultMutableTreeNode("B l ");
b.add(bl);
DefaultMutableTreeNode b2 = new DefaultMutableTreeNode("B2");
b .a d d (b 2 );
DefaultMutableTreeNode b3 = new DefaultMutableTreeNode("B3");
b.add(b3);
// Создаем дерево
tree = new JTree(top);
// Добавляем дерево в панель прокрутки jsp = new JScrollPane(tree);
// Добавляем панель с полосами прокрутки в панель содержимого
a d d (j sp);
// Добавляем метку в панель содержимого = new JLa b e l ();
a d d (j1a b ,
BorderLayout.SOUTH);
// Обработка событий выбора в дереве r e e .addTreeSelectionListener(new TreeSelectionListener() {
public void valueChanged(TreeSelectionEvent tse) {
jlab.setText("Selection is " + t s e .getPath());
// Выбрано " + t s e .getPath());
}
}) На рис. 31.11 показан результат выполнения этого аплета.
Щ
A p p le t V ie w e r: JTreeD em o й _ □ [ Х Applet
|
L 3
O p tion s
г
Д а А A 2
?
е
З
в
D
Bi
- D
i l
- Q B 3
[s e le c tio n is [O ptions, В, B2]
1
■Applet Рис. 31.11. Окно аплета
JTreeDemo
Глава 31. Дополнительные сведения о библиотеке Swing
9 9 Строка, представленная в текстовом поле, определяет путь из верхнего узла дерева к выбранному узлу.
Класс Класс
JTable
— это компонент, отображающий данные в виде строки столбцов. Чтобы изменить размеры столбцов, вы можете перетаскивать их границы с помощью мыши. Кроме того, весь столбец можно перетащить в другую позицию В зависимости от конфигурации, можно выбрать строку, столбец или ячейку в таблице, а также изменить данные в ячейке. Классе является сложным компонентом, предлагающим гораздо больше параметров и функций, чем мы можем рассмотреть здесь. (Наверное, это наиболее сложный компонент библиотеки Swing.) Однако в своей стандартной конфигурации класс

JTable предлагает легкие вис пользовании функции — особенно если вы просто хотите использовать таблицу для представления данных в табличном формате. Краткий обзор, представленный здесь, поможет вам понять, какими возможностями обладает этот компонент.
Как и класс
JTree, класс
JTable обладает многими классами и интерфейсами связанными с ним. Все они находятся в пакете
j a v a x .
s w i n g .
В своей основе класс
JTable является очень простым. Он состоит из одного или нескольких столбцов с информацией. Вверху каждого столбца расположен заголовок. Кроме описания данных в столбце, заголовок также предлагает механизм при помощи которого пользователь может изменять размеры столбца или его местонахождение в таблице. Класс
JTable не предлагает никаких возможностей прокрутки, поэтому вы обычно помещаете его в контейнер класса Класс
JTable предлагает несколько конструкторов. Один из них выглядит следующим образом данные за гол Столбцов Здесь данные это двухмерный массив информации, которую нужно представить, аза гол Столбцов одномерный массив, содержащий заголовки столбцов. Класс
JTable основан на трех моделях. Первой является модель таблицы которая определена интерфейсом
TableModel. Эта модель определяет все, что связано с отображением данных в двухмерном формате. Вторая модель — модель столбца таблицы, представленная с помощью
TableColumnModel. Класс
JTable определяет столбцы, а модель
TableColumnModel
— характеристики столбца Эти две модели реализованы в пакете
j a v a x .
swing .table. Третья модель определяет способ выбора элементов она определяется с применением интерфейса
List
Select
ionModel мы уже рассматривали ее при обсуждении класса В классе
JTable может происходить несколько различных событий. Двумя наиболее фундаментальными событиями являются
ListSelectionEvent и
Table-
Model
Event. Событие
ListSelectionEvent происходит при выборе пользователем чего-нибудь в таблице. По умолчанию класс
JTable позволяет выбрать одну или несколько полных строк, однако вы можете изменить это поведение, чтобы позволить пользователю выбирать один или несколько столбцов или одну или несколько отдельных ячеек. Событие
TableModel
Event происходит при изменении данных таблицы каким-либо образом. Обработка этих событий требует чуть больше затрат чем в ранее описанных компонентах, и ее мы не сможем рассмотреть в этой книге Но если вам просто понадобится использовать класс
JTable для отображения данных (как в следующем примере, то никакие события обрабатывать не придется.
Для создания простой таблицы класса
JTable, отображающей данные, выполните следующие действия

1 0 0 0 Часть III. Разработка программного обеспечения с использованием Java
1. Создайте экземпляр класса JTab 1 е .
2. Создайте экземпляр класса J S c r o l l P a n e , определяя таблицу в качестве объекта прокрутки. Добавьте таблицу в панель с полосами прокрутки. Добавьте панель с полосами прокрутки в панель содержимого.
Ниже показан пример создания и использования простой таблицы. В этом
аплете сначала создается одномерный массив строк c o lH e a d s для заголовков столбцов. Двухмерный массив строк d a t a создается для данных ячеек таблицы Каждый элемент в массиве является массивом из трех строк. Эти массивы передаются конструктору класса J T a b le . Таблица добавляется в панель с полосами прокрутки, после чего последняя добавляется в панель содержимого. Таблица отображает данные в массиве d a ta . Конфигурация таблицы, используемая по умолчанию, позволяет также редактировать содержимое ячеек. Все изменения будут отражены в массиве d a ta .
// Демонстрация применения i n g ;
/*


*/
public class JTab leD emo extends JApplet {
publi c void m i t ( ) {
try {
S w m g U t i l i t i e s .
invokeAndWait (
new R u n n a b l e () {
public vo id r u n () {
m a k e G U I ();
}
}
)
;
} catch (Exception exc) {
S y s t e m . o u t . p r i n t l n (" C a n 't create because of " + e x c ) ;
// S y s t e m . o u t . p r i n t l n (Невозможно создать из-за " + e x c ) ;
}
}
pr iv ate voi d m a k e G U I () {
// Инициализируем заголовки столбцов t r i n g [] colHeads = { "Name", "Extension", "ID#" };
// Инициализируем данные" V i v i a ne " ,
"5634", "587" },
{ "Melanie", "7345", "922" },
{
"Anne", "1237", "333"
},
{
"John", "5656", "314"
},
{
"Matt", "5672", "217"
},
{ "Claire", "6741", "444" },
{ "Erwin", "9023", "519" },
Глава 31. Дополнительные сведения о библиотеке Swing
1 0 0 1
{ "Ellen", "1134", "532" },.
{ "Jennifer", "5689", "112" },
{ "Ed", "9030", "133" },
{ "Helen", "6751", "145" }
};
// Создаем таблицу table = new JTable(data, colHeads);
// Добавляем таблицу в панель с полосами прокрутки jsp = new JScrollPane(table);
// Добавляем панель с полосами прокрутки в панель содержимого На рис. 31.12 показан результат выполнения этого аплета.
Щ
A p p le t V ie w e r : J T a b le D e m o
* . : -
P i l И И И е Й p p let
N a m e
E xten sion
ID #
G ail
4 5 6 7
8 6 5
Keri
7 5 6 6
5 5 5
Vi vi an e
5 6 3 4
5 8 7
M e la n ie
7 3 4 5
9 2 2
.=
A nne
1 2 3 7
3 3 3
John
5 6 5 6
3 1 4
Matt
5 6 7 2
2 1 7
C la ire
6741
4 4 4
Erw in
9 0 2 3
5 1 9
•w
(A p p le t started Рис. 31.12. Окно аплета Продолжайте изучать библиотеку Библиотека
S w ing определяет большой набор инструментов пользовательского графического интерфейса. В ней заключены многие возможности, которые вам придется изучать самостоятельно. Например, библиотека
S w ing предлагает панели инструментов, контекстные подсказки и панели с индикаторами хода работ. Также библиотека
Sw ing предлагает полную подсистему меню. Подключаемые внешние виды, которые тоже предлагает эта библиотека, позволяют получать разные варианты внешнего вида и поведения элемента. Вы можете определять собственные модели различных компонентов, а при работе с таблицами и деревьями изменять способ редактирования и визуализации данных в ячейках. Лучший способ изучения возможностей библиотеки
Sw ing
— постоянно экспериментировать сними
1   ...   82   83   84   85   86   87   88   89   90


написать администратору сайта