Загрузка данных
import javax.swing.*;
import javax.swing.table.DefaultTableModel;
import java.awt.*;
import java.awt.event.*;
public class Tablitsa {
public static void main(String[] args) {
// Окно
JFrame frame = new JFrame("Таблица");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// Данные (как на листке)
String[][] data = {
{"addins", "02.11.2006 19:15", "Folder", ""},
{"AppPatch", "09.10.2006 14:10", "Folder", ""},
{"assembly", "02.11.2006 14:20", "Folder", ""},
{"Boot", "13.10.2007 10:46", "Folder", ""},
{"Branding", "13.10.2007 12:10", "Folder", ""},
{"Cursors", "23.09.2006 16:38", "Folder", ""},
{"Debug", "07.12.2006 17:45", "Folder", ""},
{"Fonts", "03.10.2006 14:02", "Folder", ""},
{"Help", "08.11.2006 15:25", "Folder", ""},
{"explorer.exe", "18.10.2006 14:13", "File", "2,93MB"},
{"helppane.exe", "22.03.2006 11:39", "File", "4,58MB"},
{"twunk.exe", "19.08.2007 10:07", "File", "1,03MB"},
{"mszeg.exe", "07.08.2007 11:24", "File", "2,10MB"},
{"aviap.exe", "17.12.2007 16:58", "File", "12,67MB"}
};
String[] columnNames = {"Name", "Last modified", "Type", "Size"};
// === ЗАДАНИЕ 1: ТАБЛИЦА ===
JTable table = new JTable(data, columnNames);
JScrollPane scrollPane = new JScrollPane(table);
// === ЗАДАНИЕ 2: КНОПКИ ===
JButton addRow = new JButton("Добавить строку");
JButton delRow = new JButton("Удалить строку");
JButton addCol = new JButton("Добавить столбец");
JButton delCol = new JButton("Удалить столбец");
// === ЗАДАНИЕ 3: ТЕКСТОВОЕ ПОЛЕ ===
JTextField textField = new JTextField(15);
// === ЗАДАНИЕ 4: КНОПКА ДОБАВЛЕНИЯ ДАННЫХ ===
JButton addData = new JButton("Добавить данные");
// Панель для кнопок (сверху)
JPanel panelButtons = new JPanel();
panelButtons.add(addRow);
panelButtons.add(delRow);
panelButtons.add(addCol);
panelButtons.add(delCol);
// Панель для ввода (снизу)
JPanel panelInput = new JPanel();
panelInput.add(new JLabel("Данные:"));
panelInput.add(textField);
panelInput.add(addData);
// Собираем окно
frame.add(panelButtons, BorderLayout.NORTH);
frame.add(scrollPane, BorderLayout.CENTER);
frame.add(panelInput, BorderLayout.SOUTH);
// === ОБРАБОТЧИКИ СОБЫТИЙ (ActionListener) ===
// Добавить строку: создаём пустую строку в таблице
addRow.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
DefaultTableModel model = (DefaultTableModel) table.getModel();
model.addRow(new Object[]{"", "", "", ""});
}
});
// Удалить строку: удаляем выделенную строку
delRow.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
DefaultTableModel model = (DefaultTableModel) table.getModel();
int row = table.getSelectedRow();
if (row != -1) {
model.removeRow(row);
}
}
});
// Добавить столбец: спрашиваем название и добавляем
addCol.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
DefaultTableModel model = (DefaultTableModel) table.getModel();
String name = JOptionPane.showInputDialog("Введите название столбца:");
model.addColumn(name);
}
});
// Удалить столбец: очищаем выделенный столбец
delCol.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
int col = table.getSelectedColumn();
int row = table.getSelectedRow();
if (col != -1 && row != -1) {
table.setValueAt("", row, col);
}
}
});
// Добавить данные: вставляем текст из поля в выделенную ячейку
addData.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
int row = table.getSelectedRow();
int col = table.getSelectedColumn();
if (row != -1 && col != -1) {
table.setValueAt(textField.getText(), row, col);
}
}
});
// Показываем окно
frame.setSize(650, 400);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
}