Ich muss eine ausgewählte Zeile in JTable mit dem Key Event löschen. Wenn ich eine Zeile auswähle und die Löschtaste drücke, sollten die ausgewählten Zeilenwerte gelöscht werden. Wie kann ich das machen?Wie lösche ich eine ausgewählte Zeile in JTable in Schlüsselereignis in Java-Swing
Antwort
Sie müssen die ausgewählten Zeilen (das ist, wo der Cursor derzeit ist) abrufen und dann removeRow für diese Zeilen aufrufen.
empfehle ich Ihnen, lesen Sie die API for JTable.
versuchen, diese (ich mehrere Zeilen im Code verwendet, wo ich es benutzt, aber man sollte es brechen, um ein können. Außerdem bin ich nicht sicher, ob die Arrays .sort ist wirklich notwendig)
int [] toDelete = dataTable.getSelectedRows();
Arrays.sort(toDelete); // be shure to have them in ascending order.
MyTableModel myTableModel = (MyTableModel)dataTable.getModel();
for(int ii = toDelete.length -1; ii >=0; ii--) {
myTableModel.removeRow(toDelete[ii]); // beginning at the largest.
}
Was ist Code dafür – user1330693
@ user1330693 Ich habe den Code hinzugefügt. –
Sie müssen in Modellindizes konvertieren, wie in der neueren Dokumentation ['JTable'] (http://docs.oracle.com/javase/6/docs/api/javax/swing/JTable.html) gezeigt. Besser: benutze einen 'ListSelectionListener', der hier erwähnt wird (http://stackoverflow.com/a/10130736/230513). – trashgod
Wenn Sie weitere Fragen stellen, sollten Sie mehr von dem veröffentlichen, was Sie bereits versucht haben, damit die Leute nicht das Gefühl haben, dass sie das Denken für Sie tun müssen. Vielleicht möchten Sie auch lesen http://tinyurl.com/so-hints –
@AngeloNeuschitzer: Keine Notwendigkeit zu verkleinern [* Jon Skeet: Coding Blog *] (http://msmvps.com/blogs/jon_skeet/archive/ 2010/08/29/schriftlich-die-perfekte-frage.aspx); siehe [* Wie kann ich Kommentare formatieren und verknüpfen? *] (http://meta.stackexchange.com/q/19756/163188) für Details. – trashgod