Prima di iniziare questo esercizio, è necessario completare l'.
In questo esercizio, verrà programmata l'applicazione affinché elimini il record di un dipendente. L'elenco seguente descrive il comportamento dell'applicazione:
Per aggiungere questo comportamento, completare le seguenti istruzioni riportate in questo esercizio:
Per programmare l'abilitazione e la disabilitazione del pulsante Elimina, aggiungere un listener alla tabella che abiliti il pulsante in base alla selezione di una riga:
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;Quando si seleziona una riga nella tabella, il pulsante Elimina viene abilitato.
Aggiungere un evento actionPerformed al pulsante Elimina e programmare l'evento affinché apra la finestra di dialogo Conferma eliminazione:
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); } });
Eseguire il binding del campo di testo nella finestra Conferma eliminazione per visualizzare il nome del dipendente da eliminare:
Il campo di testo è ora associato alla colonna firstName della riga selezionata in employeesTable.
Eseguire il binding del pulsante Sì per richiamare il metodo removeEmployee(java.lang.Integer) sul servizio Web:
Questo stato indica che il pulsante Sì sarà sempre abilitato.
A questo punto, è necessario aggiungere un evento al binder del pulsante Sì (non allo stesso pulsante Sì). Inoltre, bisognerà impostare la finestra Conferma eliminazione affinché venga chiusa dopo la rimozione del dipendente, ovvero dopo che il binder ha richiamato correttamente il servizio sull'origine dati.
Aggiungere un evento al binder per il pulsante Sì in modo da nascondere la finestra Conferma eliminazione quando il binder ha completato l'azione:
Importante: l'evento viene aggiunto al binder del pulsante e non al pulsante.
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) {} });
Il codice di evento nasconde la finestra Conferma eliminazione dopo aver eseguito l'azione del binder.
A questo punto, quando viene eseguita l'applicazione sarà possibile selezionare un dipendente nella tabella, fare clic su Elimina e scegliere Sì per confermare l'eliminazione. Il record del dipendente verrà eliminato dalla struttura e l'elenco dei dipendenti verrà aggiornato.