JTable中getSelectedRow()返回-1的问题

银锅 发布于 2017/07/05 12:31
阅读 170
收藏 1

大家好,我是新人!

我今天写了个测试例子,一个表格,加入了6行数据。。。。。

我让表格响影鼠标事件,(只输出号行),

这时一直返回-1,请帮我解惑,谢谢大家!

package gui;

import java.awt.event.MouseEvent;
import java.util.List;
import java.util.ArrayList;

import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;

public class TestTable extends JFrame {
    
    /**
     * 
     */
    private static final long serialVersionUID = 1L;    
    
    JScrollPane jsp;
    JTable tab;
    DefaultTableModel model;
    
    public TestTable() {
        init();
        action();
    }

    public void init(){
        Object [] names=new Object[]{"姓名","用户名","密码"};
        
        this.setDefaultCloseOperation(EXIT_ON_CLOSE);
        this.setBounds(0, 0, 600, 500);
        //this.setLayout(null);
        
        
        
        model=new DefaultTableModel(names,0);
        tab=new JTable(model);
        tab.setBounds(0, 0, 600, 400);
        tab.addMouseListener(new java.awt.event.MouseAdapter(){
             public void mouseClicked(MouseEvent e) {//仅当鼠标单击时响应               
                 
                 System.out.println(tab.getSelectedRow());
             }
         }); 
        
        jsp=new JScrollPane(tab);
        
        this.getContentPane().add(jsp);
        
        
        List<User> list=new ArrayList<User>();
        list.add(new User("熊大","xiong2","1293"));
        list.add(new User("二王","xiong65","123"));
        list.add(new User("天气","xion6g","1235"));
        list.add(new User("枯井","xio3ng","1823"));
        list.add(new User("d博有关","xio5ng","7123"));
        list.add(new User("ret枯井","xion6g","5123"));
        
        for(User user:list){
            Object [] data=new Object[]{user.getName(),user.getUsername(),user.getPassword()};
            model.addRow(data);            
            
        }
        
        //model.removeRow(1);
        this.pack();
        this.setVisible(true);        
    }

    public void action() {        

    }
    
    public static void main(String[] args) {
        TestTable tt=new TestTable();
        tt.init();
    }

}
 

加载中
0
银锅
银锅

解决了,谢谢大家。

在main方法中,我运行了tt.init()方法,可以构造中我也调用了,一共两次,取消了一个,正常了。

返回顶部
顶部