JTable, Celleditor, как мне начатьCellEditing? - PullRequest
0 голосов
/ 01 июля 2011

У меня есть JTable и пара ячеек в виде строк (только 1 столбец), которые имеют текстовые поля При двойном щелчке по определенной ячейке пользователь может редактировать ячейку Но у меня есть отдельная часть кнопки Изменить приложение для редактирования ячеек так как при получении getCellEditor нет метода "startCellEditing" (там есть только stopCellEditing)

если я вызываю метод editCellAt (строка, столбец) (при нажатии кнопки редактирования), он удаляет существующий контент, и пользователь должен снова ввести весь контент.

как мне получить это поведение? Вкратце, вместо того, чтобы дважды щелкнуть по ячейке для редактирования, пользователь нажимает кнопку редактирования. Как добиться такого же поведения?

1 Ответ

0 голосов
/ 01 июля 2011

этот код не очищает содержимое ячейки при нажатии кнопки

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();
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...