Java cellSelectionModel在选择同一行中的另一个单元格时未获取信息

Java cellSelectionModel在选择同一行中的另一个单元格时未获取信息,java,swing,jtable,Java,Swing,Jtable,我对cellSelectionModel有问题。当选择同一行中的另一个单元格时,它不会获取信息 例如,如果我选择11,它将返回信息,但如果我选择12之后,我将不会返回任何内容,您知道如何更正此问题吗 示例代码: public class TableListener { public static void main(String[] a) { JFrame frame = new JFrame(); frame.setDefaultCloseOperat

我对cellSelectionModel有问题。当选择同一行中的另一个单元格时,它不会获取信息 例如,如果我选择11,它将返回信息,但如果我选择12之后,我将不会返回任何内容,您知道如何更正此问题吗

示例代码:

public class TableListener {

    public static void main(String[] a) {
        JFrame frame = new JFrame();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        final JTable table;

        String[] columnTitles = { "A", "B", "C", "D" };
        Object[][] rowData = { { "11", "12", "13", "14" }, { "21", "22", "23", "24" },
                { "31", "32", "33", "34" }, { "41", "42", "44", "44" } };

        table = new JTable(rowData, columnTitles);

        table.setCellSelectionEnabled(true);
        ListSelectionModel cellSelectionModel = table.getSelectionModel();
        cellSelectionModel.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);

        cellSelectionModel.addListSelectionListener(new ListSelectionListener() {
            public void valueChanged(ListSelectionEvent e) {
                String selectedData = null;

                int[] selectedRow = table.getSelectedRows();
                int[] selectedColumns = table.getSelectedColumns();

                for (int i = 0; i < selectedRow.length; i++) {
                    for (int j = 0; j < selectedColumns.length; j++) {
                        selectedData = (String) table.getValueAt(selectedRow[i], selectedColumns[j]);
                    }
                }
                System.out.println("Selected: " + selectedData);
            }

        });

        frame.add(new JScrollPane(table));

        frame.setSize(300, 200);
        frame.setVisible(true);
    }

}

您需要添加另一个侦听器:

table.getColumnModel().addColumnModelListener(new TableColumnModelListener() {
...
在哪里

public void columnSelectionChanged(ListSelectionEvent e) 
与您相关。

要更快获得更好的帮助,请添加或。