Events
Komponentit, olivatpa ne mukautettuja tai osia keh Frameworkista, tukevat tapahtumankäsittelyä. Voit lisätä tapahtumakuuntelijoita eri tyyppisten tapahtumien, kuten käyttäjävuorovaikutusten, tilamuutosten tai muiden mukautettujen tapahtumien, tallentamiseksi. Näitä tapahtumakuuntelijoita voidaan käyttää erityisten toimintojen tai käyttäytymisten laukaisemiseen tapahtumien yhteydessä.
Alla olevassa esimerkissä tapahtuma lisätään kolmen tuetun menetelmän avulla: lambda-lauseet, anonyymit luokat ja metodiviittaukset.
Tapahtumien lisääminen
Tapahtumakuuntelijan lisääminen on mahdollista käyttää yhtä seuraavista malleista, joissa:
-
myComponenton komponentti, johon haluat liittää tapahtumakuuntelijan. -
addEventListenerkorvataan tapahtumaspecific-grahamella. -
EventListenerkorvataan tapahtuman tyypillä, jota kuunnellaan.
myComponent.addEventListener(e -> {
//Suoritetaan, kun tapahtuma laukaisee
});
//TAI
myComponent.addEventListener(new ComponentEventListener<EventListener>() {
@Override
public void onComponentEvent(ComponentEvent e){
//Suoritetaan, kun tapahtuma laukaisee
}
});
//TAI
myComponent.addEventListener(this::eventMethod);
Lisäksi on lisätty synnynnäisiä sokerimenetelmiä tai alias-nimiä, jotka mahdollistavat tapahtumien vaihtoehtoisen lisäämisen käyttämällä on-etuliitettä, jota seuraa tapahtuma, kuten:
myComponent.onEvent(e -> {
//Suoritetaan, kun tapahtuma laukaisee
});
Tapahtuman poistaminen
Kun tapahtumakuuntelija lisätään, ListenerRegistration-objekti palautetaan. Sitä voidaan käyttää muun muassa tapahtuman poistamiseen myöhemmin.
//Tapahtuman lisääminen
ListenerRegistration listenerRegistration = myComponent.addEventListener(e -> {
//Suoritetaan, kun tapahtuma laukaisee
});
//Tapahtuman poistaminen
listenerRegistration.remove();
Tapahtumakuorman käyttäminen
On tärkeää huomata, että tapahtumat usein tulevat kuormituksen kanssa, joka sisältää lisätietoja, jotka liittyvät tapahtumaan. Voit hyödyntää tätä kuormaa tehokkaasti tapahtumankäsittelijässä saadaksesi käyttökelpoiset tiedot ilman tarpeettomia pyynnön toimittamista asiakkaan ja palvelimen välillä. Näin parannat sovelluksesi suorituskykyä.
Seuraava koodinpätkä kysyy komponentilta tietoja, jotka, tämän demonstroinnin tarkoituksia varten, on jo sisällytetty tapahtuman kuormaan, ja se edustaa tehotonta koodia:
myComponent.addEventListener(e -> {
// Joka saa tietoja komponentista
String componentText = e.getComponent().getText();
//TAI jos komponentti on käytettävissä funktion laajuudessa
String componentText = myComponent.getText();
// Käytä componentTextiä suorittaaksesi muita toimintoja.
});
Sen sijaan voit käyttää metodin kuormaa, jonka esimerkki sisältää komponentin tekstin, jolloin kierrosavoimaa vältetään:
myComponent.addEventListener(e -> {
// Joka saa tietoja tapahtumakuormasta
String componentText = e.getText();
// Käytä componentTextiä suorittaaksesi muita toimintoja.
});
Tämä lähestymistapa minimoi tarpeen kysyä komponentilta tietoja, koska tiedot ovat helposti saatavilla tapahtuman kuormassa. Noudattamalla tätä tehokasta tapahtumankäsittelykäytäntöä voit parantaa komponenttisi suorituskykyä ja reagointikykyä. Lisätietoja löytyy Asiakas/PALVELINSUHTEET.
Esimerkki
Alla on esittely, joka osoittaa ButtonClickEvent lisäämisen Button komponenttiin. Tämä Button käyttää myös tapahtuman kuorman mukana tulevaa tietoa näyttääkseen tietoja näytöllä.
Näytä koodi
- ButtonEventView.java