2010-12-15 5 views
0

Ich erforsche Codierung in Java, um die Anzeige der Liste von Elementen zu realisieren, und der Benutzer kann einen von ihnen auswählen, indem er auf einen Eintrag klickt. Die Art, die ich wählte, istEine Frage über die richtige Art der Verwendung von ListSelectionListener in einer JTable

1). Ich habe ein Objekt vom Typ DefaultTableModel deklariert und die 7 Spaltenbezeichner gesetzt.

2). Dann geschleift I nur durch meine Objektliste (die aus NodeList Typ ist), von denen jeder das Parsen und es in einem Array und Hinzufügen zu der Reihe dieser Tabelle durch den Aufruf:

model.addRow(myArray); 

3). Danach, habe ich ein neues JTable, und fügte hinzu, mein Modell, um es und bringen es mit der GUI:

table = new JTable(model); 
JScrollPane scrollpane = new JScrollPane(table); 
panel.add(scrollpane); 

4). Dies ist der Schritt, wo ich stecken geblieben bin. Durch den Aufruf von API des JTable gelang es mir, eine Instanz von ListSelectionModel zu bekommen und einen Zuhörer daran binden:

table.getSelectionModel().addListSelectionListener 
(
    new ListSelectionListener() 
{ 
     public void valueChanged(ListSelectionEvent event) 
     { 
     int viewRow = table.getSelectedRow(); 

ich hier nur gelänge zu bekommen, dass der Index der Reihe ist, aber was ich wirklich bin versucht, zu erhalten ist der Wert dieser Bezeichner dieser bestimmten Zeile. Angenommen, meine Kennungen sind {"ID", "HREF", "Höhe", "Breite", "Produkt", "Typ", "Beschriftung"}, wäre ich sehr dankbar, wenn ihr mir beim nächsten Schritt helfen könnt um den Wert eines dieser 7 Identifikatoren der ausgewählten Zeile zu erhalten.

Vielen Dank im Voraus!

Antwort

2

Wenn Sie nur einen bestimmten Wert aus einer Reihe möchten, können Sie anrufen:

table.getValueAt (Zeile, Spalte);

Wo Zeile ist Ihre ViewRow, und col ist der Index der oben genannten Bezeichner (also 0 wäre ID, 2 wäre Höhe, etc).

Weitere Details auf der JTable JavaDocs

Verwandte Themen