Загрузка данных
import javax.swing.*;
import javax.swing.table.DefaultTableModel;
import java.awt.*;
public class Tablitsa extends JFrame {
public Tablitsa() {
// Данные таблицы (как на листке)
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);
JButton addData = new JButton("Вставить");
// Панель кнопок
JPanel buttons = new JPanel();
buttons.add(addRow);
buttons.add(delRow);
buttons.add(addCol);
buttons.add(delCol);
// Панель ввода
JPanel input = new JPanel();
input.add(new JLabel("Данные:"));
input.add(textField);
input.add(addData);
// Сборка окна
setTitle("Таблица");
setLayout(new BorderLayout());
add(buttons, BorderLayout.NORTH);
add(scrollPane, BorderLayout.CENTER);
add(input, BorderLayout.SOUTH);
// === 4. ОБРАБОТЧИКИ (ДОБАВЛЕНИЕ ДАННЫХ) ===
// Добавить строку
addRow.addActionListener(e -> {
DefaultTableModel m = (DefaultTableModel) table.getModel();
m.addRow(new String[]{"", "", "", ""});
});
// Удалить строку
delRow.addActionListener(e -> {
DefaultTableModel m = (DefaultTableModel) table.getModel();
int row = table.getSelectedRow();
if (row >= 0) m.removeRow(row);
});
// Добавить столбец
addCol.addActionListener(e -> {
DefaultTableModel m = (DefaultTableModel) table.getModel();
String name = JOptionPane.showInputDialog("Название столбца:");
if (name != null) m.addColumn(name);
});
// Удалить столбец
delCol.addActionListener(e -> {
int col = table.getSelectedColumn();
if (col >= 0) {
DefaultTableModel m = (DefaultTableModel) table.getModel();
// Удаляем данные из всех строк в этом столбце
for (int i = 0; i < m.getRowCount(); i++) {
m.setValueAt("", i, col);
}
}
});
// Вставить данные из поля в выбранную ячейку
addData.addActionListener(e -> {
int row = table.getSelectedRow();
int col = table.getSelectedColumn();
if (row >= 0 && col >= 0) {
table.setValueAt(textField.getText(), row, col);
textField.setText("");
}
});
// Настройки окна
setPreferredSize(new Dimension(650, 400));
pack();
setLocationRelativeTo(null);
setVisible(true);
}
public static void main(String[] args) {
new Tablitsa();
}
}