Siirry pääsisältöön

Creating a Basic App

Avaa ChatGPT:ssä

Tämä ensimmäinen vaihe luo perustan asiakashallintaohjelmalle luomalla yksinkertaisen, interaktiivisen käyttöliittymän. Tämä osoittaa, kuinka perustaa perus webforJ -sovellus, jossa on yksi painike, joka avaa dialogin, kun sitä napsautetaan. Tämä on yksinkertainen toteutus, joka esittelee keskeiset komponentit ja antaa sinulle käsityksen siitä, kuinka webforJ toimii.

Tämä vaihe hyödyntää webforJ:n tarjoamaa perus sovelluskirjastoa määrittämään sovelluksen rakennetta ja käyttäytymistä. Seuraavat vaiheet siirtyvät kehittyneempään asetukseen, joka käyttää reititystä useiden näyttöjen hallintaan, joka esitellään kohdassa Scaling with Routing and Composites.

Tämän vaiheen lopuksi sinulla on toimiva sovellus, joka osoittaa perusvuorovaikutusta komponenttien ja tapahtumien käsittelyn kanssa webforJ:ssa. Suorittaaksesi sovelluksen:

  • Siirry 1-creating-a-basic-app -hakemistoon
  • Suorita komento mvn jetty:run

Creating a webforJ app

WebforJ:ssa App edustaa keskushubia projektisi määrittämiseksi ja hallitsemiseksi. Jokainen webforJ -sovellus alkaa luomalla yksi luokka, joka laajentaa perus App-luokkaa, joka toimii ydinkehykseksi:

  • Hallita sovelluksen elinkaarta, mukaan lukien alustaminen ja lopettaminen.
  • Hallita reititystä ja navigaatiota, jos se on käytössä.
  • Määrittää sovelluksen teema, alue ja muut yleiset asetukset.
  • Tarjota olennaisia työkaluja ympäristön ja komponenttien kanssa vuorovaikutukseen.

Extending the App class

Tässä vaiheessa luodaan luokka nimeltä DemoApplication.java, joka laajentaa App-luokkaa.

DemoApplication.java
public class DemoApplication extends App {
@Override
public void run() {
// Ydin sovelluslogiikka tulee tähän
}
}
Avainasetukset

Tässä demo-sovelluksessa webforj.conf -tiedosto on määritetty seuraavilla kahdella olennaisella ominaisuudella:

  • webforj.entry: Määrittää täydellisen luokan nimen, joka laajentaa App:ta ja toimii pääsijaintina projektillesi. Tämän oppaan vuoksi aseta se arvoon com.webforj.demos.DemoApplication estääksesi epäselvyyksiä alustamisen aikana.
    webforj.entry = com.webforj.demos.DemoApplication
  • webforj.debug: Ota käyttöön virhetilatila yksityiskohtaisia lokitietoja ja virheiden näkyvyyttä varten kehityksen aikana. Varmista, että se on asetettu true, kun työskentelet tämän oppaan parissa:
    webforj.debug = true

Lisätietoja muista asetuksista löytyy Configuration Guide.

Overriding the run() method

Kun projekti on oikein määritetty, run()-metodi App-luokassa ylikirjoitetaan.

run()-metodi on sovelluksesi ydin webforJ:ssa. Se määrittää, mitä tapahtuu sovelluksen alustamisen jälkeen, ja on pääsijainti sovelluksesi ominaisuuksille. Ylikirjoittamalla run()-metodin voit toteuttaa logiikan, joka luo ja hallitsee sovelluksesi käyttöliittymää ja käyttäytymistä.

Reitityksen käyttäminen

Reitityksen toteuttaminen sovelluksessa ei vaadi run()-metodin ylikirjoittamista, sillä kehys käsittelee automaattisesti reittien alustamisen ja alkuperäisen Frame:n luomisen. run()-metodia kutsutaan sen jälkeen, kun perusreitti on ratkaistu, varmistaen, että sovelluksen navigointijärjestelmä on täysin alustettu ennen kuin mitään logiikkaa suoritetaan. Tämä opas syventää reitityksen toteutusta step 3. Lisätietoja on myös Reititysartikkelissa.

DemoApplication.java
public class DemoApplication extends App {
@Override
public void run() throws WebforjException {
// Sovelluslogiikka
}
}

Adding components

WebforJ:ssa komponentit ovat sovelluksesi käyttöliittymän rakennuspalikoita. Nämä komponentit edustavat erillisiä osia sovelluksesi käyttöliittymästä, kuten painikkeita, tekstikenttiä, dialogueja tai taulukoita.

Voit ajatella käyttöliittymää komponenttien puuna, jossa Frame toimii juurena. Jokainen Frame:en lisätty komponentti muodostaa oksan tai lehden tässä puussa, mikä vaikuttaa sovelluksesi kokonaisrakenteeseen ja käyttäytymiseen.

Komponenttikatalogi

Katso tämä sivu saadaksesi luettelon eri komponenteista, jotka ovat käytettävissä webforJ:ssa.

App Frame

Frame-luokka webforJ:ssa edustaa ei-sisäkkästä, ylimmällä tasolla olevaa ikkunaa sovelluksessasi. Frame toimii tyypillisesti käyttöliittymäkomponenttien pääkonteinerina, joten se on olennainen rakennuspalikka käyttöliittymän rakentamisessa. Jokaisessa sovelluksessa on oltava vähintään yksi Frame, ja voit lisätä komponentteja, kuten painikkeita, dialogeja tai lomakkeita näihin kehyksiin.

Frame luodaan run()-metodissa tässä vaiheessa - myöhemmin komponentteja lisätään tänne.

DemoApplication.java
public class DemoApplication extends App {
@Override
public void run() throws WebforjException {
Frame mainFrame = new Frame();
}
}

Server and client side components

Jokaisella palvelinpuolen komponentilla webforJ:ssa on vastaava asiakaspuolen verkkokomponentti. Palvelinpuolen komponentit käsittelevät logiikkaa ja taustatoimintoja, kun taas asiakaspuolen komponentit, kuten dwc-button ja dwc-dialog, hallitsevat etupään renderointia ja tyylitystä.

Kokoavat komponentit

Peruskomponenttien lisäksi, joita webforJ tarjoaa, voit suunnitella mukautettuja kokoavia komponentteja ryhmittämällä useita elementtejä yhdeksi uudelleen käytettäväksi yksiköksi. Tätä käsitettä käsitellään tämän oppaan vaiheessa. Lisätietoja on Composite Article

Komponentit on lisättävä säilytys- luokkaan, joka toteuttaa HasComponents -rajapinnan. Frame on yksi tällainen luokka - tässä vaiheessa lisää Paragraph ja Button Frame:en, jotka näkyvät käyttöliittymässä selaimessa:

DemoApplication.java
public class DemoApplication extends App {
Paragraph demo = new Paragraph("Demo Application!");
Button btn = new Button("Info");

@Override
public void run() throws WebforjException {
Frame mainFrame = new Frame();
btn.setTheme(ButtonTheme.PRIMARY)
.addClickListener(e -> showMessageDialog("This is a demo!", "Info"));
mainFrame.add(demo, btn);
}
}

Tämän suorittaminen antaa sinulle yksinkertaisesti muotoillun painikkeen, joka mahdollistaa viestin näyttämisen, jossa lukee "Tämä on demo!"

Styling with CSS

Tyylittely webforJ:ssa antaa sinulle täydellisen joustavuuden suunnitella sovelluksesi ulkoasua. Vaikka kehys tukee yhtenäistä suunnittelua ja tyyliä suoraan laatikosta, se ei pakota erityistä tyylittelytapaa, mikä mahdollistaa mukautettujen tyylien soveltamisen, jotka ovat linjassa sovelluksesi vaatimusten kanssa.

WebforJ:n avulla voit dynaamisesti lisätä luokkien nimiä komponentteihin ehdollista tai interaktiivista tyylittelyä varten, käyttää CSS:ää johdonmukaisen ja tehokkaan suunnittelujärjestelmän saavuttamiseksi, ja liittää kokonaisia sisäisiä tai ulkoisia tyylitiedostoja.

Adding CSS classes to components

Voit dynaamisesti lisätä tai poistaa luokkia komponentteista käyttämällä addClassName() ja removeClassName() -menetelmiä. Nämä menetelmät mahdollistavat komponentin tyylien hallinnan sovelluksesi logiikan perusteella. Lisää mainFrame-luokan nimi edellisissä vaiheissa luotuun Frame:en lisäämällä seuraava koodi run()-metodiin:

mainFrame.addClassName("mainFrame");

Attaching CSS files

Tyylitelläksesi sovellustasi voit lisätä CSS-tiedostoja projektiisi joko käyttämällä resurssiannotaatioita tai hyödyntämällä webforJ asset-API:a ajon aikana. Katso tämä artikkeli saadaksesi lisätietoja.

Esimerkiksi @StyleSheet-annotaatiota käytetään tyylien lisäämiseksi resurssit/staattinen-hakemistosta. Se luo automaattisesti URL-osoitteen määritetylle tiedostolle ja liittää sen DOM:iin varmistaen, että tyylit sovelletaan sovellukseesi. Huomaa, että tiedostot, jotka sijaitsevat staattisen hakemiston ulkopuolella, eivät ole käytettävissä.

DemoApplication.java
@StyleSheet("ws://styles/library.css")
public class DemoApplication extends App {
@Override
public void run() {
// Sovelluslogiikka täällä
}
}
Verkkopalvelimen URL-osoitteet

Varmistaaksesi, että staattiset tiedostot ovat käytettävissä, ne tulee sijoittaa hakemistoon resources/static. Jotta voit liittää staattisen tiedoston, voit rakentaa sen URL-osoitteen käyttämällä verkkopalvelun protokollaa.

Sample CSS code

CSS-tiedostoa käytetään projektissasi hakemistossa resources > static > css > demoApplication.css, ja seuraavaa CSS:ää käytetään sovelluksen perusmuotoilun soveltamiseen.

.mainFrame {
display: inline-grid;
gap: 20px;
margin: 20px;
padding: 20px;
border: 1px dashed;
border-radius: 10px;
}

Tämän jälkeen seuraava annotaatio tulisi lisätä App-luokkaasi:

DemoApplication.java
@StyleSheet("ws://css/demoApplication.css")
@AppTitle("Demo Step 1")
public class DemoApplication extends App {

CSS-tyylit sovelletaan pää Frame:een ja tarjoavat rakennetta järjestämällä komponentteja verkkogalleria-asettelun avulla, ja lisäämällä marginaali-, täyttö- ja reunustyylejä, jotta käyttöliittymä näyttää visuaalisesti järjestäytyneeltä.