Confirm
ConfirmDialog on modaalinen dialogi, joka on suunniteltu antamaan käyttäjän valita yhdestä enintään 3 vaihtoehdosta. Dialogi estää sovelluksen suorituksen, kunnes käyttäjä vuorovaikuttaa sen kanssa tai se sulkeutuu aikakatkaisun vuoksi.
Käyttö
ConfirmDialog tarjoaa tavan pyytää käyttäjiltä vahvistusta tai valita useiden vaihtoehtojen välillä, kuten Kyllä/Ei tai OK/Sulje, varmistaen, että he tunnustavat ja vahvistavat toimintonsa.
Näytä koodi
- ConfirmDialogConstructorView.java
Tyypit
Vaihtoehtotyyppi
ConfirmDialog tukee seuraavia vaihtoehtotyyppejä, jotka määrittävät dialogissa näytettävät painikkeet:
OK: NäyttääOK-painikkeen.OK_CANCEL: NäyttääOK- jaPeruuta-painikkeet.ABORT_RETRY_IGNORE: NäyttääKeskeytä,UudelleenjaOhita-painikkeet.YES_NO_CANCEL: NäyttääKyllä,EijaPeruuta-painikkeet.YES_NO: NäyttääKylläjaEi-painikkeet.RETRY_CANCEL: NäyttääUudelleenjaPeruuta-painikkeet.CUSTOM: Näyttää mukautetut painikkeet määriteltyjen mukaan.
Viestintyyppi
ConfirmDialog tukee seuraavia viestintyyppiä. Kun konfiguroit tyyppiä, dialogi näyttää ikonin viestin vieressä, ja dialogin teema päivittyy webforJ-muotoilun sääntöjen mukaisesti.
PLAIN: Näyttää viestin ilman ikonia, käyttäen oletusteemaa.ERROR: Näyttää virheikoni viestin vieressä virheteema käytössä.QUESTION: Näyttää kysymysmerkin ikonin viestin vieressä, käyttäen päätoteemaa.WARNING: Näyttää varoitusikoni viestin vieressä varoitusteema käytössä.INFO: Näyttää info-ikonin viestin vieressä, käyttäen info-teemaa.
Seuraavassa esimerkissä koodi konfiguroi vahvistusdialogin tyypiksi CUSTOM, jossa on mukautettu otsikko ja viesti.
Näytä koodi
- ConfirmDialogOptionsView.java
Tulos
ConfirmDialog palauttaa tuloksen käyttäjän vuorovaikutuksen perusteella dialogin kanssa. Tämä tulos osoittaa, mikä painike käyttäjä klikattiin tai suljettiinko dialogi aikakatkaisun vuoksi.
Tulos palautetaan show()-metodista tai vastaavasta OptionDialog-metodista, kuten alla on esitetty.
ConfirmDialog.Result enum sisältää seuraavat mahdolliset tulokset:
OK: Käyttäjä napsauttiOK-painiketta.CANCEL: Käyttäjä napsauttiPERUUTA-painiketta.YES: Käyttäjä napsauttiKYLLÄ-painiketta.NO: Käyttäjä napsauttiEI-painiketta.ABORT: Käyttäjä napsauttiKESKEYTÄ-painiketta.RETRY: Käyttäjä napsauttiUUDEN-painiketta.IGNORE: Käyttäjä napsauttiOHITA-painiketta.FIRST_CUSTOM_BUTTON: Käyttäjä napsautti ensimmäistä mukautettua painiketta.SECOND_CUSTOM_BUTTON: Käyttäjä napsautti toista mukautettua painiketta.THIRD_CUSTOM_BUTTON: Käyttäjä napsautti kolmatta mukautettua painiketta.TIMEOUT: Dialogi aikakatkaisee.UNKNOWN: Tuntematon tulos, jota käytetään tyypillisesti oletus- tai virhetilassa.
if (result == ConfirmDialog.Result.FIRST_CUSTOM_BUTTON) {
OptionDialog.showMessageDialog("Muutokset hylättiin", "Hylätty", "Selvä");
} else {
OptionDialog.showMessageDialog(
"Muutokset tallennettu", "Tallennettu", "Selvä", MessageDialog.MessageType.INFO);
}
Oletuspainike
ConfirmDialog sallii sinun määrittää oletuspainikkeen, joka on esivalittu, kun dialogi näytetään. Tämä parantaa käyttäjäkokemusta tarjoamalla suositellun toiminnan, joka voidaan nopeasti vahvistaa painamalla Enter-näppäintä.
ConfirmDialog dialog = new ConfirmDialog(
"Oletko varma?", "Vahvista", ConfirmDialog.OptionType.YES_NO);
dialog.setDefaultButton(Button.SECOND); // toinen painike
dialog.show();
Painikkeiden teksti
Voit konfiguroida painikkeiden tekstiä käyttämällä setButtonText(ConfirmDialog.Button button, String text)-metodia.
ConfirmDialog dialog = new ConfirmDialog(
"Oletko varma?", "Vahvista", ConfirmDialog.OptionType.CUSTOM);
dialog.setButtonText(ConfirmDialog.Button.FIRST, "Ehdottomasti");
dialog.setButtonText(ConfirmDialog.Button.SECOND, "Ei");
dialog.show();
HTML-käsittely
Oletuksena ConfirmDialog käsittelee ja renderoi HTML-sisältöä. Voit poistaa tämän ominaisuuden käytöstä määrittämällä sen näyttämään raakatekstiä sen sijaan.
ConfirmDialog dialog = new ConfirmDialog(
"<b>Oletko varma?</b>", "Vahvista",
ConfirmDialog.OptionType.YES_NO, ConfirmDialog.MessageType.QUESTION);
dialog.setRawText(true);
dialog.show();
Aikakatkaisu
ConfirmDialog sallii sinun asettaa aikakatkaisuajan, jonka jälkeen dialogi sulkeutuu automaattisesti. Tämä ominaisuus on hyödyllinen ei-kriittisille vahvistuksille tai toiminnoille, jotka eivät vaadi käyttäjän välitöntä vuorovaikutusta.
Voit määrittää dialogin aikakatkaisun käyttämällä setTimeout(int timeout)-metodia. Aikakatkaisu on sekunteina. Jos määritetty aika kuluu ilman käyttäjän vuorovaikutusta, dialogi sulkeutuu automaattisesti.
ConfirmDialog dialog = new ConfirmDialog(
"Oletko varma?", "Vahvista", ConfirmDialog.OptionType.YES_NO);
dialog.setDefaultButton(Button.SECOND);
dialog.setTimeout(3);
ConfirmDialog.Result result = dialog.show();
switch (result) {
case TIMEOUT:
OptionDialog.showMessageDialog(
"Käytit liikaa aikaa päättääksesi", "Aikakatkaisu", "Selvä",
MessageDialog.MessageType.WARNING);
break;
case YES:
OptionDialog.showMessageDialog(
"Klikkasit Kyllä", "Kyllä", "Selvä",
MessageDialog.MessageType.INFO);
break;
default:
OptionDialog.showMessageDialog(
"Klikkasit Ei", "Ei", "Selvä",
MessageDialog.MessageType.INFO);
break;
}
Parhaat käytännöt
- Selkeät ja ytimekkäät kehotteet: Varmista, että kehotteessa on selvästi ilmoitettu, mitä toimintoa käyttäjältä pyydetään vahvistamaan. Vältä epäselvyyksiä.
- Sopivat vaihtoehtotyypit: Valitse vaihtoehtotyypit, jotka vastaavat toiminnan kontekstia. Yksinkertaisille kyllä/ei-päätöksille käytä suoraviivaisia vaihtoehtoja. Monimutkaisemmissa tilanteissa tarjoa lisäpainikkeita, kuten "Peruuta", jotta käyttäjät voivat perääntyä ilman päätöksentekoa.
- Looginen oletuspainike: Aseta oletuspainike, joka vastaa todennäköisintä tai suositeltua käyttäjän toimintoa päätöksenteon yksinkertaistamiseksi.
- Johdonmukainen teema: Yhdistele dialogin ja painikkeiden teemat sovelluksesi muotoilun kanssa yhtenäisen käyttäjäkokemuksen varmistamiseksi.
- Viisaasti käytetty aikakatkaisu: Aseta aikakatkaisuja ei-kriittisille vahvistuksille varmistaaksesi, että käyttäjillä on tarpeeksi aikaa lukea ja ymmärtää kehotteet.
- Ylihyödyntämisen minimointi: Käytä vahvistusdialogeja säästeliäästi käyttäjätyytyväisyyden välttämiseksi. Varaa niitä kriittisille toimille, jotka vaativat erillistä käyttäjän vahvistusta.