JTable, Celleditor, как мне начать CellEditing?
У меня есть JTable и пара ячеек в виде строк (только 1 столбец), в которых есть текстовые поля При двойном щелчке по определенной ячейке пользователь может редактировать ячейку. Но у меня есть отдельная часть кнопки "Изменить" приложения для редактирования ячеек, так как отсутствует "startCellEditing" метод получения getCellEditor (есть только stopCellEditing)
если я вызываю метод editCellAt (строка, столбец) (при нажатии кнопки редактирования), он удаляет существующий контент, и пользователь должен снова ввести весь контент.
Как я могу получить это поведение? Вкратце, вместо того, чтобы дважды щелкнуть по ячейке для редактирования, пользователь нажимает кнопку редактирования. Как добиться такого же поведения?
1 ответ
Этот код не очищает содержимое ячейки при нажатии кнопки
import javax.swing.*;
import javax.swing.table.DefaultTableModel;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class Test extends JFrame {
public Test() {
DefaultTableModel tableModel = new DefaultTableModel();
tableModel.setRowCount(2);
tableModel.setColumnCount(2);
tableModel.setValueAt("Foo", 0, 0);
final JTable t = new JTable(tableModel);
JPanel comp = new JPanel(new BorderLayout());
getContentPane().add(comp);
comp.add(t, BorderLayout.CENTER);
JButton edit = new JButton("Edit");
edit.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
t.editCellAt(0, 0);
}
});
comp.add(edit, BorderLayout.SOUTH);
pack();
setVisible(true);
}
public static void main(String[] args) {
new Test();
}
}