Hallo,
ich habe ein JFrame mit einem JTable erstellt.
Mit Strg+D und Strg+L kann ich eine Zeile löschen bzw. neu einfügen.
Wenn ich jetzt mehrmals hintereinander diese Tastenkombinationen drücke, reagiert meine JTable nur beim ersten Mal.
Um erneut die Tastenkombi ausführen zu können, muss ich extra noch mal in die Tabelle klicken, obwohl eigentlich auch nach dem ersten Drücken von Strg+D/L die aktuelle Zeile markiert ist.
Hier beispielsweise ein Teilstück des Codes der Klasse AddLine, die KeyListener implementiert:
Was ist da faul??
Die Tabelle, die ich noch mal erzeuge, besitzt doch nach wie vor die KeyListener... und es funktioniert ja auch ein erneutes Ausführen des Befehles, nur eben erst dann, wenn ich erneute in die Tabelle klicke :x
Ich hatte mehr oder weniger diese Frage schon in's Forum gestellt, aber damals hatte ich gedacht, mein Fehler liegt bei der falschen Markierung... aber das glaube ich mittlerweile nicht mehr. Deshalb hab ich's jetzt neu formuliert.
Wäre echt um Hilfe dankbar!!
Liebe Grüße,
Julia
ich habe ein JFrame mit einem JTable erstellt.
Mit Strg+D und Strg+L kann ich eine Zeile löschen bzw. neu einfügen.
Wenn ich jetzt mehrmals hintereinander diese Tastenkombinationen drücke, reagiert meine JTable nur beim ersten Mal.
Um erneut die Tastenkombi ausführen zu können, muss ich extra noch mal in die Tabelle klicken, obwohl eigentlich auch nach dem ersten Drücken von Strg+D/L die aktuelle Zeile markiert ist.
Hier beispielsweise ein Teilstück des Codes der Klasse AddLine, die KeyListener implementiert:
Code:
public void keyPressed(KeyEvent e) {
int row = gui.table.getSelectedRow();
if ((e.isControlDown()) && (e.getKeyCode() == KeyEvent.VK_L)) {
for (int i = 99; i > row; i--) {
for (int j = 0; j < 4; j++) {
gui.al.dataMiddle[i][j] = gui.al.dataMiddle[i-1][j];
}
}
gui.al.dataMiddle[row][0] = null;
gui.al.dataMiddle[row][1] = null;
gui.al.dataMiddle[row][2] = null;
gui.al.dataMiddle[row][3] = null;
gui.table = new JTable(gui.al.dataMiddle, gui.columnNames);
gui.table.setColumnModel(gui.colModel);
gui.table.addKeyListener(new AddLine(gui));
gui.table.addKeyListener(new DeleteLine(gui));
gui.table.getSelectionModel().setSelectionInterval(row, row);
gui.sp.getViewport().add(gui.table);
}
...............
Was ist da faul??
Die Tabelle, die ich noch mal erzeuge, besitzt doch nach wie vor die KeyListener... und es funktioniert ja auch ein erneutes Ausführen des Befehles, nur eben erst dann, wenn ich erneute in die Tabelle klicke :x
Ich hatte mehr oder weniger diese Frage schon in's Forum gestellt, aber damals hatte ich gedacht, mein Fehler liegt bei der falschen Markierung... aber das glaube ich mittlerweile nicht mehr. Deshalb hab ich's jetzt neu formuliert.
Wäre echt um Hilfe dankbar!!
Liebe Grüße,
Julia