Bevor Sie mit dieser Übung anfangen, müssen Sie ausführen.
In dieser Übung werden Sie die Anwendung für das Löschen eines Mitarbeitereintrags programmieren. In der folgenden Liste wird das Verhalten beschrieben, das die Anwendung aufweisen soll:
Führen Sie die folgenden, in dieser Übung beschriebenen Schritte aus, um dieses Verhalten hinzuzufügen:
Um die Schaltfläche Löschen so zu programmieren, dass sie aktiviert bzw. inaktiviert sein kann, fügen Sie der Tabelle einen Listener hinzu, der die Schaltfläche aktiviert, wenn eine Zeile ausgewählt wird. Gehen Sie dazu wie folgt vor:
employeesTable = new JTable();
employeesTable.getSelectionModel().addListSelectionListener(new ListSelectionListener() { public void valueChanged(ListSelectionEvent e) { getDeleteButton().setEnabled(getEmployeesTable().getSelectedRowCount() != 0); } });
import javax.swing.event.ListSelectionEvent; import javax.swing.event.ListSelectionListener;Wenn nun eine Zeile in der Tabelle ausgewählt wird, wird die Schaltfläche Löschen aktiviert.
Fügen Sie ein Ereignis actionPerformed zur Schaltfläche Löschen hinzu und programmieren Sie es so, dass das Dialogfenster 'Löschen bestätigen' geöffnet wird:
deleteButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent e) { System.out.println("actionPerformed()"); // TODO Auto-generated Event stub actionPerformed() } });
deleteButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent e) { getConfirmDialog().setVisible(true); } });
Binden Sie das Textfeld im Dialogfenster Löschen bestätigen, um den Vornamen des zu löschenden Mitarbeiters anzuzeigen:
Nun wird das Textfeld an die Spalte firstName der ausgewählten Zeile in der Mitarbeitertabelle gebunden.
Binden Sie die Schaltfläche Ja so, dass sie die Methode removeEmployee(java.lang.Integer) für den Web-Service aufruft:
Dieser Komponentenstatus bedeutet, dass die Schaltfläche Ja stets aktiviert ist, da es für das Ändern des Status keinen Grund gibt.
In diesem Schritt fügen Sie dem Binder der Schaltfläche Ja (nicht der Schaltfläche Ja selbst) ein Ereignis hinzu. Das Dialogfenster Löschen bestätigen soll nach dem Löschen des Mitarbeitereintrags geschlossen werden, d. h., nachdem der Binder den Service für die Datenquelle erfolgreich aufgerufen hat.
Fügen Sie dem Binder für die Schaltfläche Ja ein Ereignis hinzu, um das Dialogfenster Löschen bestätigen zu schließen, wenn der Binder seine Aktion beendet hat. Führen Sie dazu die folgenden Schritte aus:
Wichtig: Sie fügen das Ereignis zum Binder der Schaltfläche, nicht zur Schaltfläche selbst hinzu.
removeEmployeeAction.addActionBinderListener(new jve.generated.IActionBinder.ActionBinderListener() { public void afterActionPerformed(jve.generated.IActionBinder.ActionBinderEvent e) { System.out.println("afterActionPerformed()"); // TODO Auto-generated Event stub afterActionPerformed() } public void beforeActionPerformed(jve.generated.IActionBinder.ActionBinderEvent e) {} });
removeEmployeeAction.addActionBinderListener(new jve.generated.IActionBinder.ActionBinderListener() { public void afterActionPerformed(jve.generated.IActionBinder.ActionBinderEvent e) { getConfirmDialog().setVisible(false); } public void beforeActionPerformed(jve.generated.IActionBinder.ActionBinderEvent e) {} });
Durch diesen Ereigniscode wird das Dialogfenster Löschen bestätigen ausgeblendet, sobald der Binder seine Aktion ausgeführt hat.
Wenn Sie nun die Anwendung ausführen, können Sie in der Tabelle einen Mitarbeiter auswählen, auf die Schaltfläche Löschen klicken und zur Bestätigung des Löschvorgangs auf Ja klicken. Der Mitarbeitereintrag wird daraufhin aus dem Verzeichnis gelöscht und die Mitarbeiterliste spiegelt den Löschvorgang wider.