< Vissza | Tovább >

2.5 feladat: A Törlés gomb és a megerősítés párbeszédablak engedélyezése

Ebben a részben egy alkalmazott rekord törlésére programozza be a Cégcímtár alkalmazást.

Az alábbi lista írja le az alkalmazás által követendő viselkedést:
  • A tábla egy alkalmazott rekordjának kijelölésekor a Törlés gomb engedélyezetté válik.
  • A Törlés gombra kattintáskor megjelenik a Törlés megerősítése párbeszédablak, és kéri a törlés megerősítését.
  • Ha a Törlés megerősítése párbeszédablak Igen gombjára kattint, akkor az alkalmazott rekord törlődik, bezáródik a Törlés megerősítése párbeszédablak, és frissül az alkalmazottak listája.
  • Ha a Nem gombra kattint, akkor a törlés félbeszakad, és bezárul a Törlés megerősítése párbeszédablak.

A Törlés gomb engedélyezett vagy tiltott állapotának programozása annak alapján, hogy van-e kijelölt sor a táblában

A Törlés gomb engedélyezett vagy tiltott állapotának programozásához vegyen fel egy figyelőt a táblába, ami engedélyezi a gombot, ha van kijelölt sor.

  1. Jelölje ki az employeesTable táblát a Java komponens nézetben. A forrás nézet kiemeli az alábbi sort:
    employeesTable = new JTable();
  2. Közvetlenül ezután a sor után vegyen fel egy új ListSelectionListener és valueChanged eseményt az employeesTable táblába:
    employeesTable.getSelectionModel().addListSelectionListener(new ListSelectionListener() {
       public void valueChanged(ListSelectionEvent e) {
         getDeleteButton().setEnabled(getEmployeesTable().getSelectedRowCount() != 0);
       }
    });
  3. A kódsorok hozzáadása után a forrásszerkesztő hibásnak jelöli őket, amíg nem importálja a ListSelectListener és ListSelectionEvent eseményt. A szükséges importok hozzáadásához kattintson a Forrás > Importok szervezése menüpontra a főmenüben. A következő sorok hozzáadódnak az osztály import részéhez:
    import javax.swing.event.ListSelectionEvent;
    import javax.swing.event.ListSelectionListener;
Mostantól ha a tábla egy sora ki van jelölve, akkor a Törlés gomb engedélyezett.

A Törlés megerősítése párbeszédablak megnyitása a Törlés gombra kattintáskor

Vegyen fel egy actionPerformed eseményt a Törlés gombhoz, és programozza az eseményt a Törlés megerősítése párbeszédablak megnyitására.

  1. Kattintson a jobb egérgombbal a Törlés gombra, majd válassza az előugró menü Események > actionPerformed menüpontját. Az alábbi eseménycsonk lesz hozzáadva a getDeleteButton() metódushoz:
    deleteButton.addActionListener(new java.awt.event.ActionListener() { 
       public void actionPerformed(java.awt.event.ActionEvent e) {    
         System.out.println("actionPerformed()"); 
         // TODO automatikusan előállított eseménycsonk actionPerformed()
       }
    });
  2. Cserélje ki ezt az előállított csonkot a következő kóddal, ami láthatóvá teszi a Törlés megerősítése párbeszédablakot a gombra kattintáskor:
    deleteButton.addActionListener(new java.awt.event.ActionListener() { 
       public void actionPerformed(java.awt.event.ActionEvent e) {    
         getConfirmDialog().setVisible(true);
       }
    });

A Törlés megerősítése párbeszédablak szövegmezőjének kötése

Kösse a Törlés megerősítése párbeszédablak szövegmezőjét úgy, hogy a törölni kívánt alkalmazott keresztnevét jelenítse meg.

  1. A Java komponens nézetben vagy a tervezési területen jelölje ki az employeeToDeleteField szövegmezőt, és kattintson a Kötés lapra.

    Törlés megerősítése párbeszédablak kötés előtt

  2. A mezőadatok kötése párbeszédablakban jelölje ki a selectedEmployeeRecord adatobjektumot és a firstName mezőt, majd kattintson az OK gombra.

    A szövegmező már az employeesTable kijelölt sorának firstName oszlopához van kötve.

    Törlés megerősítése párbeszédablak kötés után

  3. A mező írásvédettségének megerősítéséhez állítsa a mező kötésének autoEditable tulajdonságát hamis értékre.

Az Igen gomb kötése a törlés végrehajtásához

Kösse az Igen gombot a webszolgáltatás removeEmployee(java.lang.Integer) metódusának meghívásához.

  1. Jelölje ki az Igen gombot, és kattintson a Kötés lapra az Összetevő műveleti kötései párbeszédablak megnyitásához.
  2. A Forrás típusa mezőben válassza a Webszolgáltatás lehetőséget.
  3. Az Adatforrás mezőben válassza a webServiceDataSource projektet.
  4. A Szolgáltatásforrás listában jelölje ki a removeEmployee(java.lang.Integer) metódust.
  5. A Név mező automatikusan removeEmployeeAction értékre változik. Fogadja el ezt az alapértelmezett értéket.
  6. A Paraméter mezőben jelölje ki a selectedEmployeeRecord értéket.
  7. A Tulajdonság mezőben jelölje ki a employeeID értéket. Mivel a removeEmployee() metódus integert használ paraméterként, a selectedEmployeeRecord alkalmazotti azonosítóját fogja használni.
  8. Állítsa a gomb Kezdeti állapot értékét Engedélyezett értékre.
  9. A Felkészítés szabály értékeiként állítsa be az összes feltételt Mellőz értékre.

    Ez az összetevő állapot azt jelenti, hogy az Igen gomb mindig engedélyezett, mivel nincs szükség az állapot módosítására.

    Összetevő műveleti kötések párbeszédablak az Igen gombhoz

  10. Kattintson az OK gombra.

Esemény felvétele a Törlés megerősítése párbeszédablak elrejtésére az alkalmazott törlése után

Ebben a lépésben egy eseményt ad az Igen gomb kötéséhez (nem magához az Igen gombhoz). Be szeretné zárni a Törlés megerősítése párbeszédablakot az alkalmazott törlése után, azaz miután a kötés sikeresen meghívta a szolgáltatást az adatforrásra.

Adja hozzá az alábbi kódot a getRemoveEmployeeAction() metódushoz:
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) {} 
});

Ez az eseménykód elrejti a Törlés megerősítése párbeszédablakot, miután befejeződött a kötés művelete.

Előadás ellenőrzési pont

A Cégcímtár alkalmazás futtatásakor most már kijelölhet egy alkalmazottat a táblában, rákattinthat a Törlés gombra, majd az Igen gombra a törlés megerősítéséhez. Az alkalmazott rekordja el lesz távolítva a címtárból, és az alkalmazottak listája tükrözni fogja ezt a változást.

< Vissza | Tovább >