Как се създава таблица „JTable“ в Java?

Artículo revisado y aprobado por nuestro equipo editorial, siguiendo los criterios de redacción y edición de YuBrain.

JTable е клас, който се използва в Java за създаване на интерактивни таблици, които могат да се редактират от потребителите благодарение на компонентите на Swing API на този език за програмиране. Основно се състои от графичен интерфейс, който ви позволява да представяте данни под формата на таблица, което ви позволява да преглеждате и взаимодействате с данните, показани от GUI, по различни начини, включително, наред с други, редактиране на съдържанието на таблиците, модифициране размерите на колоните и редовете, като подреждате различните колони по желание.

Създаване на проста JTable

Този пример се стреми да създаде проста таблица със следната информация:

Първо име Фамилия секс Възраст
Адриана Спри се Е двадесет и едно
Хуан калмари м 40
розалия бернард Е 67
Джулиана перес Е 36
Израел гонзалес м 36

Тази таблица ще се покаже в прозорец с лента за превъртане. Когато използваме JTable за представяне на данни в таблична форма, трябва да вземем предвид, че JTable е само графичният интерфейс и не съдържа данните, които трябва да бъдат представени. Тези данни трябва да бъдат включени в класа на модела. С други думи, за да може нашата таблица да показва всякакви данни, първо трябва да създадем модел на данни и след това да предадем този модел на JTable с помощта на конструктора.

Създаване на рамка

Трябва да вземем под внимание, че JTable се нуждае от рамка, в която може да се показва, така че тя трябва да бъде създадена първо и да включва информация като позицията и размерите на рамката, както и да уточни дали рамката ще бъде показана или не .

Общият код за постигане на това би бил:

публичен клас JTable_Use {

                Public static void main(String[] args) {   

                JFrame myframe=нова TableFrame() ;

                               myframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE) ;

                               myframe.setVisible(true);

                }

}

class TableFrame разширява JFrame {

                public TableFrame() {

                               setTitle(„Потребителски данни“) ;

                               setBounds(200,200,700,500) ;

                }

}

Горният код създава видима рамка, разположена на позиция 200 × 200 и с размери 700 × 500 със заглавие Потребителски данни.

Сега ще създадем таблица, която ще съдържа данни за потребителите. Тези данни ще включват, за целите на този пример, собствено име, фамилия, пол и възраст.

Има множество конструктори, които можем да използваме, за да добавим данните към таблицата, която създаваме. Един от най-простите конструктори позволява приемането на два масива от данни като аргументи:

JTable(Object[] [] rowData, Object[] columnNames)

Както можете да видите, това е прост конструктор за JTable , който приема като аргумент първи параметър, който е двуизмерен масив от тип Object , в който ще бъдат включени данните, съответстващи на всеки ред ( rowData ), и втори параметър, който също това е масив , но с едно измерение, също от тип Object , в който ще бъдат включени заглавките или имената на колоните ( columnName ).

Накратко, ако искаме да използваме този конструктор, трябва да декларираме два масива , един с две измерения и един с едно измерение. Правим това вътре в класа, който изгражда рамката, показана по-горе.

Ще започнем с деклариране на масива , съответстващ на заглавките на колоните. Тъй като те са текст, те ще бъдат от тип String . По-долу ще декларираме двумерния масив , съответстващ на данните, които ще се показват във всеки ред на таблицата. Декларацията на масива изглежда така:

                private String [] columnheads={„Име“, „Фамилия“, „Пол“, „Възраст“} ;

                частен низ [] [] userData={

                               {„Адриана“, „Стоп“, „Ж“, „21“},

                               {«Джон», «Каламаро», «М», «40»},

                               {«Розалия», «Бернард», « F « , « 67 « },

                               {„Джулиана“, „Перес“, „Ж“, „36“},

                               {„Израел“, „Гонзалес“, „М“, „36“}

                };

В този код сме нарекли масива , който съдържа имената на колоните „cabezadasColumnas“ и „dataUsers“, двумерен масив , който съдържа данните на петте потребители, които ще бъдат включени в таблицата.

Сега, когато имаме данните, които искаме JTable да покаже, преминаваме към използването на конструктора, за да предадем тези данни на JTable . Правим това в рамката, която създадохме по-рано. Трябва да дадем име на нашата таблица, така че ще я наречем, за този пример, userTable:

JTable tablaUsuarios=нова JTable(dataUsers, headersColumns) ;

Как да добавите ленти за превъртане и центриране

В този момент вече имаме JTable , която показва проста таблица с 4 колони и 6 реда, която има първи ред със заглавките на колоните, последван от 5 реда с данните на 5 потребители. Въпреки това, тази таблица може да не се побира в рамката 700×500, която създадохме в началото, или ако се побере сега, може по-късно да добавим данни за повече потребители към нея и в крайна сметка тя няма да се побере. В този случай е полезно да добавите ленти за превъртане, за да сте сигурни, че цялата информация в таблицата е видима.

Правим това чрез JScrollPane . В допълнение, също така е удобно да посочите позицията на нашата маса в рамката. За това използваме BorderLayout , както следва:

add(new JScrollPane(userTable), BorderLayout.CENTER) ;

крайния код

След като добавите всички части към кода, той трябва да изглежда така:

публичен клас JTable_Use {

                public static void main(String[] args) {   

                JFrame myframe=нова TableFrame() ;

                               myframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE) ;

                               myframe.setVisible(true);

                }

}

class TableFrame разширява JFrame {

                public TableFrame() {

                               setTitle(„Потребителски данни“) ;

                               setBounds(200,200,500,500) ;

                               JTable tablaUsuarios=нова JTable(dataUsers, headersColumns) ;

                               add(new JScrollPane(userTable), BorderLayout.CENTER) ;

                }

                private String [] columnheads={„Име“, „Фамилия“, „Пол“, „Възраст“} ;

                частен низ [] [] userData={

                               {„Адриана“, „Стоп“, „Ж“, „21“},

                               {«Джон», «Каламаро», «М», «40»},

                               {«Розалия», «Бернард», « F « , « 67 « },

                               {„Джулиана“, „Перес“, „Ж“, „36“},

                               {„Израел“, „Гонзалес“, „М“, „36“}

                };

}

Как да добавя други функции?

В допълнение към лентата за превъртане, JTable ви позволява да добавяте безкрайни функции за различни приложения. Можете да добавите възможност потребителят да подрежда редовете по ваш вкус, можете да промените външния вид на таблицата, като промените фоновите цветове на клетките, показвате или не показвате границите и т.н.

Препратки

Abellán, J. (2007a, 4 февруари). Примерен аплет TableModel за JTable. Извлечено от http://www.chuidiang.org/java/tablas/tablamodelo/applettabla.php

Abellán, J. (2007b, 4 февруари). Пример за TableModel в JTable. Извлечено от http://www.chuidiang.org/java/tablas/tablamodelo/tablamodelo.php

Компютърни хапчета [pildorasinformaticas]. (2017 г., 20 септември). java курс Приложения III. JТаблица I. Видео 267 [Видео файл]. Възстановено от https://www.youtube.com/watch?v=yH_g6QGFqes

Сенсей, Дж. (2011, 24 януари). Как да изберете ред от Java JTable. Извлечено на 13 септември 2021 г. от http://jedicerocool.blogspot.com/2011/01/como-seleccionar-una-fila-de-un-jtable.html

Israel Parada (Licentiate,Professor ULA)
Israel Parada (Licentiate,Professor ULA)
(Licenciado en Química) - AUTOR. Profesor universitario de Química. Divulgador científico.

Artículos relacionados