2012-04-12 31 views
19

我有一個通過AbstractTableModel填充鏈表的Jtable。JTable - 選定行單擊事件

我想要做的是當我點擊(鼠標左鍵單擊)在JTable的一行中,鏈接列表是搜索(在這種情況下,它包含電影標題)並顯示鏈接列表中的值在Jtextboxes

我該怎麼做?

下面是代碼

我猜它從選定檢索數據將其排成一個數組,將其分解並放入t中他jtextareas。我怎樣才能做到這一點 ?

+0

我提供了一個類似的答案[這裏](http://stackoverflow.com/questions/29345792/java-jtable-getting-the-data (37590500)#37590500)希望它有幫助 – 2016-06-02 11:29:39

回答

0

我會建議使用Glazed Lists這個。它使得將數據結構映射到表模型非常容易。

反應以在JTable中鼠標點擊,使用一個ActionListener:ActionListener on JLabel or JTable cell

+0

所以我試了一下代碼,這是mouselistener的,我如何在數組getSelectedRow()和getSelectedColumn()之後存儲在數組中? – Brian 2012-04-12 18:36:31

3

要了解選擇了哪一行,添加一個ListSelectionListener,如在示例SimpleTableSelectionDemo示於How to Use Tables。 A JList可以直接從鏈接列表的toArray()方法構建,並且您可以添加合適的偵聽器以獲取詳細信息。

+0

如果您在實現偵聽器時遇到困難,請編輯您的問題以包含顯示問題的[sscce](http://sscce.org/)。 – trashgod 2012-04-12 20:30:09

-3

可以使用MouseClicked事件:

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

這隻回答問題中最明顯的部分。 – Runemoro 2014-06-08 18:31:02

33

我是這樣做的:

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

此代碼上點擊鼠標和項目選擇從鍵盤反應。

+8

您可以在System.out.println(table.getValueAt(table.getSelectedRow(),0).toString())之前檢查是否(!e.getValueIsAdjusting()&& table.getSelectedRow()!= -1) – 2016-10-05 12:55:50

1
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的賣出這樣