java点击表格_JAVA点击Jtable表格如何将点击的那一行数据分别输出出来

展开全部

96351d7c7ee6cfdde0f4af76a402b586.gif

JTabel 获取表格中选中的数据, 那么有可以考虑使用下面两种方法来实现方法一:ListSelectionListener 来获取用户在表格里选中的数据是最方32313133353236313431303231363533e4b893e5b19e31333366306531便和最优的.

因为: 支持单选, 也支持多行, 支持键盘上下移动进行选择

方法二: MouseListener 当鼠标点击某行数据后,输出该数据 ,可以实现

不推荐使用MouseListener来获取表格选中数据:

1 不够灵敏, 偶尔会失效, 比如刚打开窗口后 ,有时候迅速点击table .MouseListener 就可能不会有反应...

2  用户选中多行, 比如拖动或者键盘上下移动进行选择时,那么在MouseListener里获取多行比较麻烦..不仅仅需要实现鼠标点击 ,还得需要实现拖动鼠标,释放鼠标 等多个方法,如果完善一点还需要实现键盘事件的方法...

参考代码如下import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

import javax.swing.event.*;

public class TableDemo extends JFrame {

String[] names = { "姓名", "等级" };

String[][] data = { { "张三", "A" }, { "李四", "B" }, { "王五", "C" } };

public TableDemo() {

JTable table = new JTable(data, names);

JScrollPane jsp = new JScrollPane(table);

add(jsp);

setSize(300, 200);

setLocationRelativeTo(null);

setDefaultCloseOperation(EXIT_ON_CLOSE);

// 推荐

table.getSelectionModel().addListSelectionListener(new ListSelectionListener() {

@Override

public void valueChanged(ListSelectionEvent e) {

if (!e.getValueIsAdjusting()) {

//支持拖动多选

int[] rows = table.getSelectedRows();

// int[] cols = table.getSelectedColumns();//选中的列

for (int i : rows) {

System.out.println("#方法一:\t" + table.getValueAt(i, 0) + "\t" + table.getValueAt(i, 1));

}

//支持单选

//int row=table.getSelectedRow();//选中行

int col=table.getSelectedColumn();//选中列

//System.out.println("方法一:"+table.getValueAt(row, 0)+"\t"+table.getValueAt(row, 1));

}

}

});

table.addMouseListener(new MouseAdapter() {

@Override

public void mouseClicked(MouseEvent e) {

//单选

int row = table.rowAtPoint(e.getPoint());// 选中行

// int col =table.columnAtPoint(e.getPoint());//选中列

System.out.println("*方法二:\t" + table.getValueAt(row, 0) + "\t" + table.getValueAt(row, 1));

}

});

}

public static void main(String[] args) {

EventQueue.invokeLater(new Runnable() {

public void run() {

new TableDemo().setVisible(true);

}

});

}

}


版权声明:本文为weixin_29432775原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
THE END
< <上一篇
下一篇>>