JTable - 选择行单击事件

时间:2012-04-12 16:48:17

标签: java swing linked-list jtable jtextfield

我有一个Jtable,它通过AbstractTableModel填充了一个链表。

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

我该怎么做?

这是代码

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

5 个答案:

答案 0 :(得分:51)

我是这样做的:

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());
        }
    });

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

答案 1 :(得分:5)

要了解选择了哪一行,请添加ListSelectionListener,如示例How to Use Tables中的SimpleTableSelectionDemo所示。 JList可以直接从链接列表的toArray()方法构建,您可以为其添加合适的侦听器以获取详细信息。

答案 2 :(得分:3)

 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中使用这种方式点击销售

答案 3 :(得分:1)

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

要对JTable上的鼠标点击作出反应,请使用ActionListener:ActionListener on JLabel or JTable cell

答案 4 :(得分:-3)

您可以使用MouseClicked事件:

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