Creating a Basic App
In Projektin asetukset loit webforJ-projektin. Nyt on aika luoda projektin pääluokka ja lisätä interaktiivinen käyttöliittymä webforJ-komponentteja käyttäen. Tässä vaiheessa opit seuraavista asioista:
- WebforJ:n ja Spring Bootin käyttävien sovellusten aloituspisteestä
- WebforJ- ja HTML-elementtien komponenteista
- CSS:n käyttämisestä komponenttien tyylittämiseen
Tämän vaiheen suorittaminen luo version 1-creating-a-basic-app.
Sovelluksen suorittaminen
Sovellusta kehittäessäsi voit käyttää 1-creating-a-basic-app vertailuna. Näet sovelluksen toiminnassa:
-
Siirry ylimmälle tasolle hakemistoon, joka sisältää
pom.xml-tiedoston, tämä on1-creating-a-basic-app, jos seuraat GitHubin versiota. -
Suorita seuraava Maven-komento Spring Boot -sovelluksen suorittamiseksi paikallisesti:
mvn
Sovelluksen suorittaminen avaa automaattisesti uuden selaimen osoitteessa http://localhost:8080.
Aloituspiste
Jokaisessa webforJ-sovelluksessa on yksi luokka, joka laajentaa App. Tätä opasta varten, sekä muissa julkaistuissa webforJ-projekteissa, sitä kutsutaan yleensä nimellä Application. Tämä luokka on pakkaus, jonka nimi vastaa Projektin asetuksissa käyttämääsi groupId-arvoa:
1-creating-a-basic-app
│ .editorconfig
│ .gitignore
│ pom.xml
│ README.md
│
├───.vscode
├───src/main/java
│ └──com/webforj/tutorial
│ └──Application.java
└───target
Application-luokassa SpringApplication.run() -metodi käyttää asetuksia sovelluksen käynnistämiseen. Erilaiset anotoinnit ovat sovelluksen asetuksia varten.
@SpringBootApplication
@BundleEntry("css/card.css")
@AppTheme("system")
@AppProfile(name = "Asiakassovellus", shortName = "CustomerApp")
public class Application extends App {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
Annotoinnit
@SpringBootApplication on keskeinen annotaatio Spring Bootissa. Aseta tämä annotaatio pääluokkaan merkit äksesi sen sovelluksesi lähtökohtana.
@BundleEntry, @AppTheme ja @AppProfile ovat vain muutamia webforJ-annotaatioita, joita voit käyttää, kun haluat eksplisiittisesti asettaa asetuksia.
-
@BundleEntrylisää tiedostonsrc/main/frontend:istä sovelluksen frontend-pakettiin. Tässä vaiheessa se lataa CSS-tiedoston, jonka tulet luomaan myöhemmin CSS:n tyylittelyssä. -
@AppThemehallitsee sovelluksen visuaalista teemaa. Jos se asetetaansystem:iksi, sovellus ottaa automaattisesti käyttäjän suosiman teeman:light,darktaidark-pure. Tietoja mukautettujen teemojen luomisesta tai oletusteemojen ylittämisestä löytyy Teemoista. -
@AppProfileauttaa määrittämään, miten sovellus esitetään käyttäjälle asennettavana sovelluksena installoitavana sovelluksena. Vähintään tämä annotaatio tarvitseename:n sovelluksen täydelle nimelle jashortName:n, jota käytetään, kun tilaa on rajoitetusti.shortName:n ei tule ylittää 12 merkkiä.
Käyttöliittymän luominen
Luodaksesi käyttöliittymäsi, sinun on lisättävä HTML-elementtien komponentteja ja webforJ-komponentteja. Tällä hetkellä sinulla on vain yksisivuinen sovellus, joten lisäät komponentteja suoraan Application-luokkaan. Tämä tehdään ylikirjoittamalla App.run() -metodi ja luomalla Frame, jolle lisätään komponentteja.
@Override
public void run() throws WebforjException {
Frame mainFrame = new Frame();
// Luo käyttöliittymäkomponentit ja lisää ne kehykseen
}
HTML-elementtien käyttäminen
Voit lisätä standardeja HTML-elementtejä sovellukseesi HTML-elementtien komponenttien avulla. Luo uusi instanssi komponentista ja käytä sitten add()-metodia sen lisäämiseksi Frame:een:
// Luo säiliö käyttöliittymäelementeille
Frame mainFrame = new Frame();
// Luo HTML-komponentti
Paragraph tutorial = new Paragraph("Opasohjelma!");
// Lisää komponentti säiliöön
mainFrame.add(tutorial);
WebforJ-komponenttien käyttäminen
Vaikka HTML-elementit ovat hyödyllisiä rakenteen, semantiikan ja kevyiden käyttöliittymäkokonaisuuksien suhteen, webforJ-komponentit tarjoavat monimutkaisempaa ja dynaamisempaa käyttäytymistä.
Alla oleva koodi lisää Button -komponentin, muuttaa sen ulkonäköä setTheme()-metodilla ja lisää tapahtumakuuntelijan, joka luo Viesti-dialogin komponentin, kun painiketta napsautetaan. Useimmat webforJ-komponenttimenetelmät, jotka muokkaavat komponenttia, palauttavat komponentin itsensä, joten voit ketjuttaa useita metodeja tiiviimpää koodia varten.
// Luo säiliö käyttöliittymäelementeille
Frame mainFrame = new Frame();
// Luo webforJ-komponentti
Button btn = new Button("Tietoja");
// Muokkaa webforJ-komponenttia ja lisää tapahtumakuuntelija
btn.setTheme(ButtonTheme.PRIMARY)
.addClickListener(e -> OptionDialog.showMessageDialog("Tämä on opasohjelma!", "Tietoja"));
// Lisää komponentti säiliöön
mainFrame.add(btn);
CSS:n tyylittely
Useimmilla webforJ-komponenteilla on sisäänrakennetut menetelmät, joilla voidaan tehdä yleisiä tyylimuutoksia, kuten koon ja teeman säätämistä.
// Aseta Kehyksen leveys CSS-avainsanan avulla
mainFrame.setWidth("fit-content");
// Aseta Painikkeen maksimi-leveys pikseleinä
btn.setMaxWidth(200);
// Aseta Painikkeen teema PRIMARY:ksi
btn.setTheme(ButtonTheme.PRIMARY);
Näiden menetelmien lisäksi voit tyylittää sovellustasi CSS:llä. Tyylittely-osiossa minkä tahansa komponentin dokumentointisivulla on erityisiä tietoja asiaankuuluvista CSS-ominaisuuksista.
WebforJ:ssa on myös suunniteltu CSS-muuttujien sarja, jota kutsutaan DWC-tokeniksi. Katso Tyylittely -dokumentaatiosta yksityiskohtaiset tiedot siitä, miten webforJ-komponentteja tyylitetään, ja miten käyttää näitä tokenia.
CSS:n lisääminen frontend-pakettiin
On parasta käyttää erillistä CSS-tiedostoa, jotta kaikki pysyy järjestettynä ja ylläpidettävänä. Luo tiedosto nimeltä card.css hakemistoon src/main/frontend/css, seuraavalla CSS-luokkakuvannolla:
.card {
display: grid;
gap: var(--dwc-space-l);
padding: var(--dwc-space-l);
margin: var(--dwc-space-l) auto;
border: thin solid var(--dwc-color-default);
border-radius: 16px;
background-color: var(--dwc-surface-3);
box-shadow: var(--dwc-shadow-xs);
}
Lisää sitten tiedosto frontend-pakettiin Application.java:sta käyttämällä @BundleEntry("css/card.css"). Polku on suhteellinen src/main/frontend:iin.
Opasprojektin Maven-asetukset käynnistävät webforJ:n frontend-valvojan, kun käynnistät sovelluksen mvn:llä, joten muutokset hakemiston src/main/frontend alla kootaan uudelleen kehityksen aikana. Lisätietoja löytyy Frontend-pakettityökalusta.
CSS-luokkien lisääminen komponentteihin
Voit dynaamisesti lisätä tai poistaa luokkien nimiä komponentteihin käyttämällä addClassName() ja removeClassName() -menetelmiä. Tässä oppaassa käytetään vain yhtä CSS-luokkaa:
mainFrame.addClassName("card");
Valmis Application
Application-luokkasi pitäisi nyt näyttää seuraavan kaltaiselta:
@SpringBootApplication
@BundleEntry("css/card.css")
@AppTheme("system")
@AppProfile(name = "Asiakassovellus", shortName = "CustomerApp")
public class Application extends App {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
@Override
public void run() throws WebforjException {
Frame mainFrame = new Frame();
Paragraph tutorial = new Paragraph("Opasohjelma!");
Button btn = new Button("Tietoja");
btn
.setTheme(ButtonTheme.PRIMARY)
.setMaxWidth(200)
.addClickListener(e ->
OptionDialog.showMessageDialog("Tämä on opasohjelma!", "Tietoja")
);
mainFrame.setWidth("fit-content").addClassName("card").add(tutorial, btn);
}
}
Monimutkaisemmassa sovelluksessa voit jakaa käyttöliittymän useisiin sivuihin parempaa järjestelyä varten. Tätä käsitellään myöhemmin tässä oppaassa Reititys ja koostekomponentit.
Seuraava vaihe
Kun olet luonut toimivan sovelluksen, jossa on peruskäyttöliittymä, seuraava vaihe on lisätä tietomalli ja näyttää tulokset Table-komponentissa Työskentely datan kanssa.