2017-06-02 1 views
0

Ich habe ein Formular mit mehreren JTables (table1, ..tableN) und eine Schaltfläche für die Zeile bearbeiten.Netbeans: Finden Sie welche jtable ist aktiv

Wie kann ich herausfinden, welche jtable aktiv ist?

zB für die erste Tabelle Ich weiß, dass ich

EditForm form1 = new EditForm(listArray.get(table1.getSelectedRow())); 
form1.setVisible(true); 

Außerdem schreiben, würde ich fragen, welches Ereignis soll ich bearbeiten Schaltfläche in Form nur verwenden, um zu aktivieren, wenn eine Zeile eines jtable ausgewählt ist ?

Vielen Dank im Voraus

+0

Überprüfen Sie die 'Focus' basierten Ereignisse – user489041

Antwort

0

eine ListSelectionListener zu allen Tabellen hinzufügen.

Wenn die Auswahl einer Zeile getroffen wird, wird ein Ereignis generiert. Sie können dann die Tabelle aus dem Ereignis abrufen und als Instanzvariable in Ihrer Klasse speichern.

Dann können Sie diese Variable im ActionListener Ihrer Schaltfläche referenzieren.

+0

Ich versuche etwas wie das Folgende, aber es funktioniert nicht. public Form() { initComponents(); ListSelectionModel model1 = Table1.getSelectionModel(); model1.addListSelectionListener (neu ListSelectionListener() { @Override public void valuechanged (ListSelectionEvent e) { if (= model1.isSelectionEmpty()) TabSelected = 1;! } };) } Es tut mir leid, ich bin neu in Java – prokopis

+0

1) Nicht in einem Kommentar Code eingeben. Wie Sie sehen können, ist es nicht lesbar. 2) Ich habe keine Ahnung was "nicht funktioniert" bedeutet. Erzeugt der Listener ein Ereignis? Wird die if-Anweisung ausgeführt? 3) Veröffentlichen Sie eine ordnungsgemäße [MCVE], die das Problem veranschaulicht. Um ein Konzept zu lernen, vereinfacht man das Problem. Alles was Sie brauchen ist ein Rahmen mit einer JTable. Dann können Sie Ihren Hörer testen. Wenn Sie das, was Sie versucht haben, veröffentlichen, können wir das Problem möglicherweise erkennen. – camickr

Verwandte Themen