1: Таблица (JTable):
1.Основные понятия:
Таблица (JTable) — это недавно добавленный компонент Swing. Он в основном используется для отображения данных в табличной форме. Он предоставляет простой механизм отображения больших блоков данных.
2. Распространенные методы строительства:
* JTable(): Создайте экземпляр JTable, используя модель системы по умолчанию.
* JTable(int numRows, int numColumns): создайте пустую таблицу, используя DefaultTableModel для указания строк и столбцов.
* JTable(Object[ ][ ] rowData,Object[ ][ ] columnsNames): создайте таблицу, отображающую двумерные данные.
Таблицы можно создавать непосредственно с использованием массивов имен столбцов таблицы и массивов данных таблицы.
* JTable(TableModel dm): Создайте экземпляр JTable, указав схему данных и схему полей по умолчанию.
Объекты класса модели данных обычно используются для сохранения данных, а модели таблиц создаются с помощью массивов имен столбцов таблицы и массивов данных таблицы.
3. Часто используемые методы:
4. Комплексный случай:
Код 1:
Скопируйте код кода следующим образом:
публичный класс JTableDemo1 расширяет JFrame {
//определяем таблицу
таблица JTable;
//Определяем панель полосы прокрутки (чтобы сделать таблицу прокручиваемой)
JScrollPane ScrollPane;
//Определяем объект класса модели данных (используется для сохранения данных),
ТабличнаяМодель ДефолтТаблеМодель;
общественный JTableDemo1() {
супер();
setTitle("Табличная модель и таблица");
ScrollPane = новый JScrollPane ();
//Определяем массив имен столбцов таблицы
String[] columnsNames = { "A", "B", "C" };
//Определяем массив данных таблицы
String[][] tableValues = { { "A1", "B1","C1" }, { "A2", "B2","C2" },
{ "А3", "В3", "С3" }, { "А4", "В4", "С4" } };
//Создаем объект класса модели таблицы, указывая имена столбцов таблицы и данные таблицы
tableModel = новая DefaultTableModel (tableValues, columnsNames);
//Создаем таблицу указанной модели таблицы
таблица = новый JTable (tableModel);
//Устанавливаем RowSorter (RowSorter используется для сортировки и фильтрации JTable).
table.setRowSorter(new TableRowSorter<DefaultTableModel>(tableModel));
ScrollPane.setViewportView(таблица);
getContentPane().add(scrollPane, BorderLayout.CENTER);
setBounds(300, 200, 400, 300);
setVisible (истина);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String args[]) {
новый JTableDemo1();
}
}
Скриншот 1:
Код 2:
Скопируйте код кода следующим образом:
импортировать java.awt.*;
импортировать javax.swing.*;
общественный класс JTableDemo3 {
кадр JFrame;
панель JPanel;
JScrollPane ScrollPane1, ScrollPane2, ScrollPane3;
JTable jtable1, jtable2, jtable3;
общественный JTableDemo3() {
кадр = новый JFrame («JTableDemo»);
jtable1 = новая JTable(8, 6);
Final Object[] columnsNames = { "Name", "Gender", "Home Address", // Имена столбцов лучше всего изменять с помощью Final
«Номер телефона», «День рождения», «Работа», «Доход», «Семейное положение», «Семейное положение» };
Объект[][] rowData = {
{ "ддд", "Мужчина", "Нанкин, Цзянсу", "1378313210", "24.03.1985", "Студент", "Паразит",
«Неженатый», «Не» },
{ "эээ", "женщина", "Нанкин, Цзянсу", "13645181705", "xx/xx/1985", "репетитор", "неизвестно",
«Неженатый», «Вроде нет» },
{ "fff", "мужчина", "Нанкин, Цзянсу", "13585331486", "08.12.1985", "продавец автомобилей",
«Не уверен», «Не замужем», «Да» },
{ "ггг", "женщина", "Нанкин, Цзянсу", "81513779", "xx/xx/1986", "служащий отеля",
«Решительно, но неизвестно», «Не замужем», «Да» },
{ "ххх", "Мужчина", "Нанкин, Цзянсу", "13651545936", "xx/xx/1985", "Студент", "В изгнании",
«Неженат», «Не после многочисленных расставаний» } };
jtable2 = новый JTable (rowData, columnsNames);
jtable3 = новый JTable (rowData, columnsNames);
jtable3.setPreferredScrollableViewportSize(new Dimension(600, 100));//Установим размер таблицы
jtable3.setRowHeight(30);//Устанавливаем высоту каждой строки на 20
jtable3.setRowHeight(0, 20);//Устанавливаем высоту строки 1 равной 15
jtable3.setRowMargin(5);//Устанавливаем расстояние между двумя соседними строками ячеек
jtable3.setRowSelectionAllowed(true); // Устанавливаем, можно ли его выбрать. Значение по умолчанию — false.
jtable3.setSelectionBackground(Color.white);//Устанавливаем цвет фона выбранной строки
jtable3.setSelectionForeground(Color.red);//Установить цвет переднего плана выбранной строки
jtable3.setGridColor(Color.red);//Установим цвет линий сетки
jtable3.selectAll();//Выбрать все строки
jtable3.setRowSelectionInterval(0, 2);//Устанавливаем начальную строку выбора, здесь все строки с 1 по 3 находятся в выбранном состоянии
jtable3.clearSelection();//Отменить выбор
jtable3.setDragEnabled(false); // Не понимаю этого
jtable3.setShowGrid(true); // Отображать ли линии сетки
jtable3.setShowHorizontalLines(true); // Отображать ли горизонтальные линии сетки
jtable3.setShowVerticalLines(true); // Отображать ли вертикальные линии сетки
jtable3.setValueAt("tt", 0, 0);//Устанавливаем значение определенной ячейки, это значение является объектом
jtable3.doLayout();
jtable3.setBackground(Color.cyan);
// JTable лучше всего добавлять в JScrollPane для достижения эффекта прокрутки
ScrollPane1 = новый JScrollPane (jtable1);
ScrollPane2 = новый JScrollPane (jtable2);
ScrollPane3 = новый JScrollPane (jtable3);
панель = новый JPanel (новый GridLayout (0, 1));
Panel.setPreferredSize(новое измерение (600, 400));
Panel.setBackground(Color.black);
Panel.add(scrollPane1);
Panel.add(scrollPane2);
Panel.add(scrollPane3);
Frame.setContentPane(панель);
кадр.пакет();
Frame.setVisible(истина);
Frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
новый JTableDemo3();
}
}
Скриншот 2:
Два: Дерево (JTree):
1.Основные понятия:
Дерево (JTree): элемент управления, который отображает иерархические наборы данных в виде контуров.
2. Распространенные методы строительства:
JTree(): возвращает JTree с образцом модели.
JTree(значение Object[]): возвращает JTree, определяющее каждый элемент массива как дочерний узел нового корневого узла, который не отображается.
//Только этот конструктор может создавать несколько корневых узлов
JTree(значение Object[]): возвращает JTree, определяющее каждый элемент массива как дочерний узел нового корневого узла, который не отображается.
JTree(TreeNode root): Возвращает JTree с указанным TreeNode в качестве корня, который отображает корневой узел.
JTree(корень TreeNode, логическое значение AskAllowsChildren): возвращает JTree с указанным TreeNode в качестве корня.
Он отображает корневой узел определенным образом и определяет, является ли этот узел листовым узлом. (Установите значение true, чтобы добавить дочерние узлы, а затем добавьте дочерние узлы).
3. Демонстрация кода:
Пример 1:
Скопируйте код кода следующим образом:
общественный класс JTreeDemo1 {
JFrame f;
Коробка-коробка;
JTree jTree1, jTree2;
публичный JTreeDemo1()
{
f = новый JFrame("JTreeDemo1");
box = Box.createHorizontalBox(); //Создаем объект класса Box.
jTree1 = новый JTree();
jTree2 = новый JTree();
//Добавляем произвольные ключи/значения в этот компонент
jTree1.putClientProperty("JTree.lineStyle", "Угловой");
//Добавляем панель прокрутки в контейнер Box
box.add(новый JScrollPane(jTree1), BorderLayout.WEST);
box.add(новый JScrollPane(jTree2), BorderLayout.EAST);
f.getContentPane().add(box, BorderLayout.CENTER);
f.setSize(300, 240);
//f.pack();
f.setLocation(300, 200);
f.setVisible(истина);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
новый JTreeDemo1();
}
}
Скриншот 1:
Пример 2:
Скопируйте код кода следующим образом:
общественный класс JTreeDemo2 {
JFrame f;
JPanel p;
JTree jTree1, jTree2, jTree3, jTree4, jTree5, jTree6, jTree7;
общественный JTreeDemo2() {
е = новый JFrame("JTreeDemo2");
// Конструктор: JTree()
jTree1 = новый JTree();
// Конструктор: JTree(значение Object[])
Object[] Letters = { "a", "b", "c", "d", "e" };
jTree2 = новый JTree (буквы);
// Конструктор: JTree(корень TreeNode)(TreeNode пуст)
//Создаем дерево с пустыми узлами
DefaultMutableTreeNode node1 = новый DefaultMutableTreeNode(); // Определить узлы дерева
jTree3 = new JTree(node1); // Используйте этот узел дерева в качестве параметра для вызова конструктора JTree для создания дерева с корневым узлом
// Конструктор: JTree(TreeNode root) (то же, что и выше, за исключением того, что TreeNode не пуст)
// Создаем дерево с корневым узлом
DefaultMutableTreeNode node2 = новый DefaultMutableTreeNode («Цвет»);
jTree4 = new JTree(node2); // Узлы не могут быть окрашены, по умолчанию — белый с черным текстом
jTree4.setBackground(Color.lightGray);
// Конструктор: JTree(корень TreeNode, логическое значение
// AskAllowsChildren) (то же самое, что и выше, но TreeNode отличается)
// Используйте класс DefaultMutableTreeNode, чтобы сначала создать дерево с корневым узлом, настроить его для добавления дочерних узлов, а затем добавлять дочерние узлы.
DefaultMutableTreeNode color = новый DefaultMutableTreeNode("Цвет",
истинный);
DefaultMutableTreeNode серый = новый DefaultMutableTreeNode («Серый»);
Gray.add(новый DefaultMutableTreeNode("Lightgray"));
Gray.add(новый DefaultMutableTreeNode("Darkgray"));
цвет.добавить(серый);
color.add(новый DefaultMutableTreeNode("Красный"));
color.add(новый DefaultMutableTreeNode("Зеленый"));
jTree5 = новый JTree(цвет);
// Конструктор: JTree(TreeNode root) (то же, что и выше, за исключением того, что TreeNode не пуст)
// Создаем дерево, добавляя узлы один за другим
Биология DefaultMutableTreeNode = новый DefaultMutableTreeNode («Биология»);
DefaultMutableTreeNode животное = новый DefaultMutableTreeNode («Животное»);
DefaultMutableTreeNode млекопитающее = новый DefaultMutableTreeNode("Млекопитающее");
DefaultMutableTreeNode лошадь = новый DefaultMutableTreeNode («Лошадь»);
млекопитающее.add(лошадь);
животное.добавить(млекопитающее);
биология.добавить(животное);
jTree6 = новый JTree(биология);
лошадь.isLeaf();
лошадь.isRoot();
//Конструктор:JTree(TreeModel newModel)
// Используйте класс DefaultMutableTreeNodel для определения узла, а затем используйте этот узел в качестве параметра для определения узла с помощью DefaultTreeMode
// Создаем древовидную модель, а затем используем конструктор JTree для создания дерева
Корень DefaultMutableTreeNode = новый DefaultMutableTreeNode («Root1»);
DefaultMutableTreeNode child1 = новый DefaultMutableTreeNode("Child1");
DefaultMutableTreeNode child11 = новый DefaultMutableTreeNode («Child11»);
DefaultMutableTreeNode child111 = новый DefaultMutableTreeNode(
«Ребенок111»);
root.add(ребёнок1);
child1.add(child11);
child11.add(child111);
Модель DefaultTreeModel = новая DefaultTreeModel (корень);
jTree7 = новый JTree(модель);
р = новая JPanel();
p.setLayout(new BoxLayout(p, BoxLayout.X_AXIS));
p.setPreferredSize(новое измерение(700, 400));
// JTree необходимо разместить на JScrollPane
p.add(новый JScrollPane(jTree1));
p.add(новый JScrollPane(jTree2));
p.add(новый JScrollPane(jTree3));
p.add(новый JScrollPane(jTree4));
p.add(новый JScrollPane(jTree5));
p.add(новый JScrollPane(jTree6));
p.add(новый JScrollPane(jTree7));
f.setContentPane(р);
е.пакет();
f.setLocation(300, 200);
f.setVisible(истина);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
новый JTreeDemo2();
}
}
Скриншот 2: