< 이전 | 다음 >

학습 2.5: 삭제 단추 및 확인 대화 상자 사용

이 연습에서는 직원 레코드를 삭제할 수 있도록 회사 디렉토리 응용프로그램을 프로그래밍합니다.

이 응용프로그램을 사용하여 다음을 수행할 수 있습니다.
  • 테이블에서 직원을 선택하면 삭제 단추가 사용 가능하게 됩니다.
  • 삭제 단추를 클릭하면 삭제 확인 대화 상자가 열려 삭제를 확인하도록 요청합니다.
  • 삭제 확인 대화 상자에서 단추를 클릭할 경우, 직원 레코드가 삭제되고 삭제 확인 대화 상자가 닫히며 직원 목록이 새로 고쳐집니다.
  • 아니오를 클릭하면 삭제가 취소되고 삭제 확인 대화 상자가 닫힙니다.

테이블에서 행을 선택했는지 여부에 따라 삭제 단추가 사용 가능 또는 사용 불가능하게 되도록 프로그래밍

삭제 단추가 사용 가능 또는 사용 불가능하도록 프로그램하려면 행을 선택할 때 단추를 사용할 수 있게 하는 리스너를 테이블에 추가하십시오.

  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;
이제 테이블에서 행을 선택하면 삭제 단추가 사용 가능하게 됩니다.

삭제를 클릭하면 삭제 확인 대화 상자가 열리도록 프로그래밍

actionPerformed 이벤트를 삭제 단추에 추가한 다음 삭제 확인 대화 상자가 열리도록 이벤트를 프로그램하십시오.

  1. 삭제 단추를 마우스 오른쪽 단추로 클릭하고 이벤트 > actionPerformed를 선택하십시오. getDeleteButton() 메소드에 다음 이벤트 스텁이 추가됩니다.
    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()
       }
    });
  2. 생성된 이 스텁을 다음 코드로 변경하십시오. 이는 단추를 클릭할 때 삭제 확인 대화 상자가 표시되도록 설정합니다.
    deleteButton.addActionListener(new java.awt.event.ActionListener() { 
       	public void actionPerformed(java.awt.event.ActionEvent e) {    
         getConfirmDialog().setVisible(true);
       }
    });

삭제 확인 대화 상자에서 텍스트 필드 바인드

삭제할 직원의 이름을 표시하려면 삭제 확인 대화 상자의 텍스트 필드를 바인드하십시오.

  1. Java Bean 보기 또는 디자인 영역에서 employeeToDeleteField 텍스트 필드를 선택하고 바인드 탭을 클릭하십시오.

    바인딩 이전의 삭제 확인 대화 상자

  2. 필드 데이터 바인딩 대화 상자에서 selectedEmployeeRecord 데이터 오브젝트와 firstName 필드를 선택하고 확인을 클릭하십시오.

    이제 텍스트 필드가 employeesTable에서 선택된 행의 firstName 열에 바인드되었습니다.

    바인딩 이후의 삭제 확인 대화 상자

  3. 이 필드를 읽기 전용으로 하려면 필드 바인더의 autoEditable 특성을 false로 설정하십시오.

삭제를 수행하도록 예 단추 바인드

웹 서비스에서 removeEmployee(java.lang.Integer) 메소드를 호출하도록 단추를 바인드하십시오.

  1. 단추를 선택하고 바인드 탭을 클릭하여 컴포넌트 조치 바인딩 대화 상자를 여십시오.
  2. 소스 유형 필드에서 웹 서비스를 선택하십시오.
  3. 데이터 소스 필드에서 webServiceDataSource를 선택하십시오.
  4. 소스 서비스 목록에서 removeEmployee(java.lang.Integer)를 선택하십시오.
  5. 이름 필드는 removeEmployeeAction으로 자동 변경됩니다. 이 기본값을 사용하십시오.
  6. 인수 필드에서 selectedEmployeeRecord를 선택하십시오.
  7. 특성 필드에서 employeeID를 선택하십시오. removeEmployee() 메소드는 정수를 인수로 취하므로 selectedEmployeeRecord의 직원 ID를 사용합니다.
  8. 단추의 초기 상태사용 불가능으로 설정하십시오.
  9. 활성화 규칙에 대해 조건에 따라 무시를 선택하십시오.

    이 컴포넌트 상태는 예 단추가 항상 사용 가능함을 의미합니다. 이 상태를 변경할 필요가 없기 때문입니다.

    예 단추에 대한 구성요소 조치 바인딩 대화 상자

  10. 확인을 클릭하십시오.

직원이 삭제된 후 삭제 확인 대화 상자를 숨기도록 이벤트 추가

이 단계에서는 단추의 바인더( 단추 자체가 아님)에 이벤트를 추가합니다. 직원이 제거된 후, 즉 바인더가 데이터 소스에 대해 서비스를 성공적으로 호출한 후 삭제 확인 대화 상자가 닫으려고 합니다.

getRemoveEmployeeAction() 메소드에 다음 코드를 추가하십시오.
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) {} 
});

이 이벤트 코드는 바인더의 조치가 수행된 후 삭제 확인 대화 상자를 숨깁니다.

학습 체크포인트

회사 디렉토리 응용프로그램을 실행하여 테이블에서 직원을 선택하려면 삭제 단추를 클릭하고 를 클릭하여 삭제를 확인하십시오. 그러면 직원 레코드가 디렉토리에서 제거되고 직원 목록에 제거가 반영됩니다.

< 이전 | 다음 >