如何只选择jtable中每一行的第一个单元格,一次选择一个,而其他单元格不能被选中

时间:2014-04-07 16:08:03

标签: java swing jtable row

如何只选择jtable中每一行的第一个单元格,一次只能选择其他单元格?

我的代码是:

        jTable5.addMouseListener(new MouseAdapter() {
          public void mouseClicked(MouseEvent e){

    int i=jTable5.getSelectedColumn();
    System.out.println(i);
    if(i==0)
    {  
        jTable5.setCellSelectionEnabled(true);
         jTable5.getColumnModel().getSelectionModel().setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);

    }
    else{
        jTable5.setCellSelectionEnabled(false);
    }
}

});

然而,在移动第二列的单元格时,它首先选择该单元格,然后取消选择它。

1 个答案:

答案 0 :(得分:0)

首先,禁用行选择:

setRowSelectionAllowed(false);

其次,创建一个SelectionListener,它始终将选择移动到第一行:

ListSelectionListener listerner = new ListSelectionListener() {
    @Override
    public void valueChanged(ListSelectionEvent e) {
          setColumnSelectionInterval(0, 0);
       }
    };

最后将监听器添加到表的列选择模型

getColumnModel().getSelectionModel().addListSelectionListener(listerner);