- import java.awt.BorderLayout;
- import java.awt.EventQueue;
- import javax.swing.JFrame;
- import javax.swing.JPanel;
- import javax.swing.border.EmptyBorder;
- import javax.swing.table.DefaultTableModel;
- import javax.swing.JScrollPane;
- import javax.swing.JButton;
- import javax.swing.JTable;
- import java.awt.event.MouseAdapter;
- import java.awt.event.MouseEvent;
- public class start extends JFrame {
- private JPanel contentPane;
- private JTable table;
- private DefaultTableModel model;
- public static void main(String[] args) {
- EventQueue.invokeLater(new Runnable() {
- public void run() {
- try {
- start frame = new start();
- frame.setVisible(true);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- });
- }
- public start() {
- setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- setBounds(100, 100, 450, 300);
- contentPane = new JPanel();
- contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
- contentPane.setLayout(new BorderLayout(0, 0));
- setContentPane(contentPane);
- /*
- Создадим экземпляр класса DefaultTableModel и перегрузим
- в нем метод isCellEditable. Так как isCellEditable всегда
- возвращает true, то абсолютно все ячейки являются
- редактируемыми
- */
- model = new DefaultTableModel(){
- @Override
- public boolean isCellEditable(int row, int column){
- return true;
- };
- };
- /*
- Добавим столбцы и заполним их шапку
- */
- model.addColumn("Фамилия");
- model.addColumn("Имя");
- model.addColumn("Год");
- /*
- Если не использовать JScrollPane тогда не будут видны
- заголовки столбцов нашей таблицы
- */
- JScrollPane scrollPane = new JScrollPane();
- contentPane.add(scrollPane, BorderLayout.CENTER);
- /*
- Создадим таблицу и передадим в качесве параметра,
- передадим нашу модель
- */
- table = new JTable(model);
- scrollPane.setViewportView(table);
- JPanel panel = new JPanel();
- contentPane.add(panel, BorderLayout.SOUTH);
- JButton btnNewButton = new JButton("Добавить");
- btnNewButton.addMouseListener(new MouseAdapter() {
- @Override
- public void mouseClicked(MouseEvent arg0) {
- String[] data= { "Иванов", "Петр", "1990" };
- //Добавим строку data в таблицу
- model.addRow(data);
- }
- });
- panel.add(btnNewButton);
- }
- }
5 августа 2011 г.
Swing JTable пример использования DefaultTableModel
Простой пример использования JTable в Swing, с интерактивным добавлением строк в таблицу. Для реализации данного примера будем использовать DefaultTableModel.