2012-04-12 10 views
19

Mam Jtable, który jest wypełniony przez linklist za pośrednictwem AbstractTableModel.JTable - zdarzenie click click Selected Row

To, co chcę zrobić, to po kliknięciu (kliknięcie lewym przyciskiem myszy) w wierszu w JTable, lista łączy to wyszukiwanie (w tym przypadku zawiera tytuły filmów) i wyświetla wartości z listy połączonych w Jtextboxes

Jak to zrobić?

Oto kod

Domyślam to odzyskać dane z wybranego wejdź do tablicy, podziel ją i umieść w t on jtextareas. Jak mogę to zrobić ?

+0

I pod warunkiem podobną odpowiedź [tutaj] (http://stackoverflow.com/questions/29345792/java-jtable-getting-the-data -of-the-selected-row/37590500 # 37590500) nadzieję, że to pomaga –

Odpowiedz

0

Polecam do tego celu użycie Glazed Lists. Dzięki temu bardzo łatwo można odwzorować strukturę danych na model tabeli.

reagować na kliknięcie myszki na JTable użyć ActionListener: ActionListener on JLabel or JTable cell

+0

Więc próbowałem kodu, theo e mouselistener, w jaki sposób przechowywać w tablicy po I getSelectedRow() i getSelectedColumn()? – Brian

3

Aby dowiedzieć się, co rząd został wybrany, dodać ListSelectionListener, jak pokazano na How to Use Tables w przykładzie SimpleTableSelectionDemo. A JList może zostać skonstruowany bezpośrednio z metody toArray() połączonej listy i można do niego dodać odpowiedniego detektora, aby uzyskać szczegółowe informacje.

+0

Jeśli masz problemy z zaimplementowaniem swojego słuchacza, edytuj swoje pytanie, dołączając [sscce] (http://sscce.org/), które wykazuje problem. – trashgod

-3

Można użyć zdarzenia MouseClicked:

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

To odpowiada tylko na najbardziej oczywistą część pytania. – Runemoro

33

Oto jak to zrobiłem:

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

Ten kod reaguje na kliknięcia myszy i wybór pozycji z klawiatury.

+8

Możesz sprawdzić, czy (! E.getValueIsAdjusting() && table.getSelectedRow()! = -1) przed System.out.println (table.getValueAt (table.getSelectedRow(), 0) .toString()); –

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


} 

kliknij jeśli chcesz sprzedawać w JTable wykorzystania w ten sposób