< Předchozí | Další >

Lekce 2.5: Zpřístupnění tlačítka Odstranit a dialogového okna Potvrdit odstranění

V tomto cvičení naprogramujete aplikaci My Company Directory pro odstranění záznamu zaměstnance.

Následující seznam popisuje chování, které chcete, aby aplikace používala:
  • Když vyberete zaměstnance v tabulce, zpřístupní se tlačítko Odstranit.
  • Když klepnete na tlačítko Odstranit, otevře se dialogové okno a vyzve vás, abyste odstranění potvrdili.
  • Když klepnete na tlačítko Ano v dialogovém okně Potvrdit odstranění, záznam zaměstnance se odstraní, okno Potvrdit odstranění se zavře a seznam zaměstnanců se obnoví.
  • Když klepnete na Ne, výmaz se zruší a dialogové okno Potvrdit odstranění se zavře.

Programování zpřístupnění tlačítka Odstranit podle toho, zda je v tabulce vybraný řádek nebo ne

Abyste naprogramovali zpřístupnění tlačítka Odstranit, přidejte k tabulce posluchač, který tlačítko zpřístupní, když je vybraný řádek.

  1. V pohledu Java Beans vyberte employeesTable. Pohled zdroje zvýrazňuje následující řádek:
    employeesTable = new JTable();
  2. Těsně za tento řádek přidejte nový posluchač ListSelectionListener a událost valueChanged pro tabulku employeesTable:
    employeesTable.getSelectionModel().addListSelectionListener(new ListSelectionListener() {
       public void valueChanged(ListSelectionEvent e) {
         getDeleteButton().setEnabled(getEmployeesTable().getSelectedRowCount() != 0);
       }
    });
  3. Poté, co ke kódu přidáte tyto řádky, editor zdroje je označí jako chyby, dokud neimportujete ListSelectListener a ListSelectionEvent. Pro přidání požadovaných importů klepněte na Zdroj > Organizovat import v hlavní nabídce. Do sekce importů ve třídě se přidají následující řádky:
    import javax.swing.event.ListSelectionEvent;
    import javax.swing.event.ListSelectionListener;
Nyní, když vyberte řádek v tabulce, zpřístupní se tlačítko Ostranit.

Programovat otevření dialogového okna Potvrdit odstranění po klepnutí na tlačítko Odstranit.

Přidejte událost actionPerformed k tlačítku Odstranit a naprogramujte událost tak, aby otevřela dialogové okno Potvrdit odstranění.

  1. Klepněte pravým tlačítkem na tlačítko Odstranit a vyberte Události > actionPerformed. K metodě getDeleteButton() se přidá následující stub:
    deleteButton.addActionListener(new java.awt.event.ActionListener() { 
       public void actionPerformed(java.awt.event.ActionEvent e) {    
         System.out.println("actionPerformed()"); 
         // TODO Automaticky generovaný stub události actionPerformed()
       }
    });
  2. Nahraďte tento generovaný stub následujícím kódem, který nastaví, že se po klepnutí na tlačítko zobrazí dialogové okno Potvrdit odstranění:
    deleteButton.addActionListener(new java.awt.event.ActionListener() { 
       public void actionPerformed(java.awt.event.ActionEvent e) {    
         getConfirmDialog().setVisible(true);
       }
    });

Svázání textového pole v dialogovém okně Potvrdit odstranění

Svažte textové pole v dialogovém okně Potvrdit odstranění, aby zobrazovalo jméno zaměstnance, který se má odstranit.

  1. V pohledu Java Beans nebo v oblasti návrhu vyberte textové pole employeeToDeleteField a klepněte na kartu Vazba.

    Dialogové okno Potvrdit odstranění před svázáním

  2. V dialogovém okně Datové vazby polí vyberte datový objekt selectedEmployeeRecord a pole firstName a pak klepněte na OK.

    Textové pole je nyní svázáno se sloupcem firstName ve vybraném řádku v employeesTable.

    Dialogové okno Potvrdit odstranění po svázání

  3. Abyste zajistili, že toto pole bude pouze pro čtení, nastavte vlastnost autoEditable pro vázací program pole na false.

Vazba tlačítka Ano pro provedení odstranění

Svazání tlačítka Ano, aby volalo metodu removeEmployee(java.lang.Integer) na webové službě.

  1. Vyberte tlačítko Ano a klepnutím na kartu Vazba otevřete dialogové okno Vazby akcí komponenty.
  2. V poli Typ zdroje vyberte Webová služba.
  3. V poli Zdroj dat vyberte webServiceDataSource.
  4. Ze seznamu Služba zdroje vyberte removeEmployee(java.lang.Integer).
  5. Pole Název se automaticky změní na removeEmployeeAction. Potvrďte tuto předvolbu.
  6. V poli Argument vyberte selectedEmployeeRecord.
  7. V poli Vlastnost vyberte employeeID. Protože metoda removeEmployee() má jako argument celé číslo, použijte ID zaměstnance z selectedEmployeeRecord.
  8. Nastavte Výchozí stav tlačítka na Zpřístupnéno.
  9. Pro Pravidla zpřístupnění vyberte Ignorovat pro každou ze situací.

    Tento stav komponenty znamená, že tlačítko Ano bude vždy zpřístupněné, protože není třeba, aby měnilo stav.

    Dialogové okno Vazby akcí komponent pro tlačítko Ano

  10. Klepněte na OK.

Přidání události pro skrytí dialogového okna Potvrdit odstranění po odstranění zaměstnance

V tomto kroku přidáte událost k vázacímu programu tlačítka Ano (nikoliv k samotnému tlačítku Ano). Chcete, aby se okno Potvrdit odstranění zavřelo poté, se je zaměstnanec odstraněn, což znamená poté, co vázací program úspěšně volal službu na zdroji dat.

Přidejte následující kód do metody 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) {} 
});

Tento kód události skryje dialogové okno Potvrdit odstranění poté, co je provedena akce vázacího programu.

Kontrolní bod lekce

Nyní, když spustíte aplikaci My Company Directory, můžete vybrat zaměstnance z tabulky, klepnout na tlačítko Odstranit a klepnout na Ano pro potvrzení odstranění. Záznam zaměstnance bude odstraněn z adresáře a seznam zaměstnanců bude odrážet toto odstranění.

< Předchozí | Další >