import javax.swing.*;
import javax.swing.table.DefaultTableModel;
import java.awt.*;
import java.awt.event.*;
public class TableApp {
public static void main(String[] args) {
JFrame frame = new JFrame("JTable Example");
frame.setSize(600, 400);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLayout(new BorderLayout());
// Модель таблицы
DefaultTableModel model = new DefaultTableModel();
model.addColumn("Column 1");
model.addColumn("Column 2");
JTable table = new JTable(model);
JScrollPane scrollPane = new JScrollPane(table);
// Панель управления
JPanel panel = new JPanel();
JTextField textField = new JTextField(10);
JButton addRowBtn = new JButton("Добавить строку");
JButton removeRowBtn = new JButton("Удалить строку");
JButton addColBtn = new JButton("Добавить столбец");
JButton removeColBtn = new JButton("Удалить столбец");
// Добавление строки
addRowBtn.addActionListener(e -> {
model.addRow(new Object[]{"", ""});
});
// Удаление строки
removeRowBtn.addActionListener(e -> {
int selectedRow = table.getSelectedRow();
if (selectedRow != -1) {
model.removeRow(selectedRow);
}
});
// Добавление столбца
addColBtn.addActionListener(e -> {
String colName = JOptionPane.showInputDialog("Введите имя столбца:");
if (colName != null && !colName.isEmpty()) {
model.addColumn(colName);
}
});
// Удаление столбца
removeColBtn.addActionListener(e -> {
int colCount = table.getColumnCount();
if (colCount > 0) {
model.setColumnCount(colCount - 1);
}
});
// Добавление данных из текстового поля
textField.addActionListener(e -> {
int row = table.getSelectedRow();
int col = table.getSelectedColumn();
if (row != -1 && col != -1) {
model.setValueAt(textField.getText(), row, col);
}
});
panel.add(textField);
panel.add(addRowBtn);
panel.add(removeRowBtn);
panel.add(addColBtn);
panel.add(removeColBtn);
frame.add(scrollPane, BorderLayout.CENTER);
frame.add(panel, BorderLayout.SOUTH);
frame.setVisible(true);
}
}