Пример программы DefaultTableModel (Java)

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

Фон

Первый созданный JTable использует двумерный массив объектов для заполнения данных строки и String массив для заполнения имен столбцов. Программа показывает, что хотя вы можете получить доступ к интерфейсу TableModel модели таблицы для получения и установки значений для отдельных ячеек таблицы, созданных для этой JTable , вы не можете перейдите к DefaultTableModel для дальнейшего манипулирования данными.

Второй JTable создается путем определения DefaultTableModel с данными первыми. Это позволяет выполнять полный спектр действий табличной модели над JTable (например, добавление строки, вставка строки, удаление строки, добавление столбца и т. Д.).

Возможно, вас также заинтересует класс AbstractTableModel . Этот класс позволяет вам создавать пользовательскую модель таблицы для JTable, в которой вы можете хранить данные любым удобным для вас способом. Он не обязательно должен быть в Vector из Vectors.

Код Java

Примечание. См. раздел “Обзор DefaultTableModel” для получения дополнительной информации.

  import java.awt.BorderLayout; import java.awt.EventQueue; import javax.swing.JFrame; import javax.swing.JScrollPane; import javax.swing.JTable; import  javax.swing.table.TableModel; import javax.swing.table.DefaultTableModel; public class TableExample {public static void main (String [] args) {//Используйте поток отправки событий для компонентов SwingEventQueue.invokeLater (new Runnable () {  @Overridepublic void run () {new TableExample (). BuildGUI ();}});} public void BuildGUI () {JFrame guiFrame = new JFrame ();//убедитесь, что программа завершается при закрытии кадра guiFrame.setDefaultCloseOperation (JFrame  .EXIT_ON_CLOSE); guiFrame.setTitle («Создание примера таблицы»); guiFrame.setSize (700,860);//Это центрирует JFrame в середине экрана guiFrame.setLocationRelativeTo (null);//Создайте двумерный массив для  хранить данные для JTable.Object [] [] data = {{1,1,1}, {2,2,2}, {3,3,3}, {4,4,4}};// Строковый массив, содержащий имена столбцов для JTable.String [] columnNames = {"Column 1", "Colu  mn 2 "," Column 3 "};//Создаем JTable, используя массив данных и массив имен столбцов. JTable exampleJTable = new JTable (data, columnNames);//Создаем JScrollPane для содержания для JTableJScrollPane sp = new JScrollPane (  exampleJTable);//JTable предоставит методы, которые обращаются к DefaultTabelModel.//created при создании объекта JTable System.out.println (exampleJTable.getValueAt (2, 2));//DefaultTableModel может быть доступен через метод getModel. TableModel tabModel = exampleJTable.getModel ();//Обеспечивает тот же вывод, что и вызов метода exampleJTable.getValueAt//выше.System.out.println (tabModel.getValueAt (2, 2) .toString ());//Примечание:  Мы не можем преобразовать TableMode, возвращаемый//методом getModel, в объект DefaultTableModel, потому что он реализован как анонимный//внутренний класс в JTable.  Итак, давайте создадим JTable с DefaultTableModel,//мы можем использовать://Создаем объект DeafultTableModel для другого JTableDefaultTableModel defTableModel = new DefaultTableModel (data, columnNames); JTable anotherJTable = new JTable (defTableModel);//Создаем JTable для JScrollPane.  the JTableJScrollPane anotherSP = new JScrollPane (anotherJTable);//массив, содержащий данные для нового columnObject [] newData = {1,2,3,4};//Добавить столбецdefTableModel.addColumn ("Column 4", newData); //массив, содержащий данные для нового rowObject [] newRowData = {5,5,5,5};//Добавить rowdefTableModel.addRow (newRowData);//массив, содержащий данные для нового rowObject [] insertRowData = {  2.5,2.5,2.5,2.5};//Вставить строку  (sp, BorderLayout.NORTH); guiFrame.add (anotherSP, BorderLayout.SOUTH); guiFrame.setVisible (true);}}  

Оцените статью
recture.ru
Добавить комментарий