JTable – 选择行单击事件

我有一个通过AbstractTableModel填充链表的Jtable。

我想要做的是当我在JTable的一行上单击(鼠标左键单击)时,链表是搜索(在这种情况下它包含电影标题)并在Jtextboxes的链表中显示值

我该怎么做呢?

这是代码

  • GUI_g: http ://pastebin.com/J3qtjn8J
  • ProgramTableModel: http : //pastebin.com/Dwkc9Cz3
  • 处理: http : //pastebin.com/qHnkvCbr
  • 主要: http : //pastebin.com/K4yGYX9H

我猜它会将所选行中的数据检索到一个数组中,将其拆分并放入jtextareas中。 我怎样才能做到这一点 ?

我是这样做的:

table.getSelectionModel().addListSelectionListener(new ListSelectionListener(){ public void valueChanged(ListSelectionEvent event) { // do some actions here, for example // print first column value from selected row System.out.println(table.getValueAt(table.getSelectedRow(), 0).toString()); } }); 

此代码对键盘上的鼠标单击和项目选择做出反应。

要了解选择了哪一行,请添加ListSelectionListener ,如示例SimpleTableSelectionDemo中的如何使用表中所示。 可以直接从链表的toArray()方法构造JList ,并且可以为其添加合适的侦听器以获取详细信息。

  private void jTable1MouseClicked(java.awt.event.MouseEvent evt) { JTable source = (JTable)evt.getSource(); int row = source.rowAtPoint( evt.getPoint() ); int column = source.columnAtPoint( evt.getPoint() ); String s=source.getModel().getValueAt(row, column)+""; JOptionPane.showMessageDialog(null, s); } 

如果你想在jtable中点击卖,就用这种方式

我建议使用Glazed Lists 。 这使得将数据结构映射到表模型变得非常容易。

要对JTable上的鼠标点击作出反应,请在JLabel或JTable单元格上使用ActionListener: ActionListener

您可以使用MouseClicked事件:

 private void tableMouseClicked(java.awt.event.MouseEvent evt) { // Do something. }