0

JTableといくつかのセルを行(1列のみ)としてテキストボックスがあります特定のセルをダブルクリックすると、ユーザーはセルを編集できますが、「startCellEditing」がないため、セルを編集するためのアプリケーションの別の編集ボタン部分がありますgetCellEditorを取得する方法(stopCellEditingのみがあります)

editCellAt(row、column)メソッドを(編集ボタンをクリックして)呼び出すと、既存のコンテンツが削除され、ユーザーはコンテンツ全体を再度入力する必要があります。

この動作を取得するにはどうすればよいですか?つまり、ユーザーがセルをダブルクリックして編集する代わりに、編集ボタンをクリックします。同じ動作を実現するにはどうすればよいでしょうか。

4

1 に答える 1

0

このコードは、ボタンをクリックしてもセルの内容をクリアしません

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();
    }
}
于 2011-07-01T11:13:23.000 に答える