JTable - 选择行单击事件

Bri*_*ian 23 java swing linked-list jtable jtextfield

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

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

我该怎么做呢?

这是代码

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

Mic*_*ian 53

我是这样做的:

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());
        }
    });
Run Code Online (Sandbox Code Playgroud)

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

  • 您可以在System.out.println(table.getValueAt(table.getSelectedRow(),0).toString())之前检查是否(!e.getValueIsAdjusting()&& table.getSelectedRow()!= -1); (12认同)

小智 6

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


} 
Run Code Online (Sandbox Code Playgroud)

如果要单击 jtable 中的单元格或行,请使用这种方式


tra*_*god 5

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


Wim*_*uwe 1

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

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