您必須先完成,才能開始這個練習。

在這個練習中,您將設計 應用程式來刪除員工記錄。 下列清單說明您要應用程式使用的行為:

如果要新增這個行為,請完成這個練習所概述的下列步驟:

  1. 將「刪除」按鈕設計成會根據表格中是否選取了一列而啟用或停用
  2. 將「確認刪除」對話框設計成在按一下「刪除」時開啟
  3. 連結「確認刪除」對話框中的文字欄位
  4. 連結「是」按鈕來執行刪除
  5. 新增在刪除員工之後隱藏「確認刪除」對話框的事件

1. 將「刪除」按鈕設計成會根據表格中是否選取了一列而啟用或停用

如果要將刪除按鈕設計成啟用或停用,請在表格中新增一個接聽器,以便在選取一列時啟用按鈕:

  1. 在 Java Bean 視圖中,選取 employeesTable。程式碼視圖會強調顯示下面這一行:
    employeesTable = new JTable();
  2. 緊接在這一行後面,將新的 ListSelectionListener 和 valueChanged 事件新增至 employeesTable 中:
    employeesTable.getSelectionModel().addListSelectionListener(new ListSelectionListener() {
    	public void valueChanged(ListSelectionEvent e) {
    		getDeleteButton().setEnabled(getEmployeesTable().getSelectedRowCount() != 0);
       }
    });

  3. 新增這幾行程式碼之後,程式碼編輯器會將它們標示為錯誤,直到您匯入 ListSelectListener 和 ListSelectionEvent 為止。 如果要新增必要的匯入,請按一下主功能表中的程式碼 > 組織匯入。 這時會在類別的匯入區段中新增下面幾行:
    import javax.swing.event.ListSelectionEvent;
    import javax.swing.event.ListSelectionListener;
    現在,當選取表格中的某列時,會啟用刪除按鈕。

2. 將「確認刪除」對話框設計成在按一下「刪除」時開啟

請將 actionPerformed 事件新增至刪除按鈕中,將事件設計成會開啟「確認刪除」對話框:

  1. 用滑鼠右鍵按一下刪除按鈕,選取事件 > actionPerformed。 這時會將下列事件 Stub 新增至 getDeleteButton() 方法中:
    deleteButton.addActionListener(new java.awt.event.ActionListener() { 
    	public void actionPerformed(java.awt.event.ActionEvent e) {
    		System.out.println("actionPerformed()");
    // TODO 自動產生事件 Stub actionPerformed()
       }
    });
  2. 將這個產生的 Stub 改成下列程式碼,以便在按一下按鈕時,將「確認刪除」對話框設為可見:
    deleteButton.addActionListener(new java.awt.event.ActionListener() { 
    	public void actionPerformed(java.awt.event.ActionEvent e) {
    		getConfirmDialog().setVisible(true);
       }
    });

3. 連結「確認刪除」對話框中的文字欄位

連結「確認刪除」對話框中的文字欄位來顯示要刪除的員工的名字:

  1. 在 Java Bean 視圖或設計區域中,選取 employeeToDeleteField 文字欄位,再按一下連結標籤。

    連結之前的「確認刪除」對話框

  2. 在「欄位資料連結」對話框中,選取 selectedEmployeeRecord 資料物件和 firstName 欄位,再按一下確定

    這時文字欄位會連結至 employeesTable 中所選取的列的 firstName 直欄。

    連結之後的「確認刪除」對話框

  3. 如果要確定這個欄位是唯讀,請將欄位連結程式的 autoEditable 內容設為 false

4. 連結「是」按鈕來執行刪除

請連結按鈕來呼叫 Web 服務的 removeEmployee(java.lang.Integer) 方法:

  1. 選取按鈕,按一下連結標籤來開啟「元件動作連結」對話框。
  2. 按一下確定

5. 新增在刪除員工之後隱藏「確認刪除」對話框的事件

在這個步驟中,您新增事件至按鈕的連結程式(不是按鈕本身)。 您想要在移除員工之後,也就是在連結程式順利呼叫資料來源的服務之後,關閉「確認刪除」對話框。

請新增事件至按鈕的連結程式,以在連結程式完成它的動作之後隱藏「確認刪除」對話框:

  1. 選取按鈕。
  2. 用滑鼠右鍵按一下按鈕的連結程式圖示,再選取事件 > 新增事件

    重要事項:您正在將事件新增至按鈕中的連結程式,而不是按鈕本身。

  3. 展開 actionBinder 節點,選取 afterActionPerformed

    「是」按鈕連結程式的「新增事件」對話框

  4. 按一下完成。這時會將下列事件 Stub 新增至 getRemoveEmployeeAction() 方法中:
    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) {} 
    });
  5. 將這個產生的 Stub 改成下列程式碼:
    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) {} 
    });

    這個事件程式碼會在執行連結程式的動作之後,隱藏「確認刪除」對話框。

現在,當您執行 應用程式時,您可以在表格中選取一個員工,按一下刪除按鈕,再按一下來確認刪除。 這時會從目錄中移除這個員工記錄,員工清單會反映移除的結果。

現在您已準備好開始進行下一個練習 - .

使用條款 | 讀者意見
(C) Copyright IBM Corporation 2000, 2005. All Rights Reserved.