在這個練習中,您將設計 應用程式來刪除員工記錄。 下列清單說明您要應用程式使用的行為:
如果要新增這個行為,請完成這個練習所概述的下列步驟:
如果要將刪除按鈕設計成啟用或停用,請在表格中新增一個接聽器,以便在選取一列時啟用按鈕:
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;現在,當選取表格中的某列時,會啟用刪除按鈕。
請將 actionPerformed 事件新增至刪除按鈕中,將事件設計成會開啟「確認刪除」對話框:
deleteButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent e) { System.out.println("actionPerformed()"); // TODO 自動產生事件 Stub actionPerformed() } });
deleteButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent e) { getConfirmDialog().setVisible(true); } });
連結「確認刪除」對話框中的文字欄位來顯示要刪除的員工的名字:
這時文字欄位會連結至 employeesTable 中所選取的列的 firstName 直欄。
請連結是按鈕來呼叫 Web 服務的 removeEmployee(java.lang.Integer) 方法:
這個元件狀態表示一律會啟用是按鈕,因為它不需要變更狀態。
在這個步驟中,您新增事件至是按鈕的連結程式(不是是按鈕本身)。 您想要在移除員工之後,也就是在連結程式順利呼叫資料來源的服務之後,關閉「確認刪除」對話框。
請新增事件至是按鈕的連結程式,以在連結程式完成它的動作之後隱藏「確認刪除」對話框:
重要事項:您正在將事件新增至按鈕中的連結程式,而不是按鈕本身。
removeEmployeeAction.addActionBinderListener(new jve.generated.IActionBinder.ActionBinderListener() { public void afterActionPerformed(jve.generated.IActionBinder.ActionBinderEvent e) { System.out.println("afterActionPerformed()"); // TODO 自動產生事件 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) {} });
這個事件程式碼會在執行連結程式的動作之後,隱藏「確認刪除」對話框。
現在,當您執行 應用程式時,您可以在表格中選取一個員工,按一下刪除按鈕,再按一下是來確認刪除。 這時會從目錄中移除這個員工記錄,員工清單會反映移除的結果。