Pagrindinė dialogo lango funkcija yra programai arba svetainei gauti tam tikrą vartotojo informaciją. Ši įvestis gali būti patvirtinimas, kad jie perskaitė pranešimą arba ką nors, ką jie įveda į teksto sritį.

Dialogo langas iškart patraukia vartotojo dėmesį. Tai puikus įrankis svarbiai informacijai rinkti ar rodyti.

„Java“ yra įvairi kalba, suteikianti kelias klases dialogo langams kurti. Šios klasės apima JOptionPane, JDialog ir JFrame.

JOptionPane klasė

Galite sukurti standartinį dialogo langą naudodami vieną iš kelių statinių metodų, priklausančių JOptionPane klasei. Jie apima:

  • showMessageDialog(), kuris perduoda pranešimą vartotojui.
  • showConfirmDialog(), kuriame užduodamas klausimas, kurį reikia patvirtinti.
  • showInputDialog(), kuri ragina vartotoją įvesti.
  • showOptionDialog(), kuris yra trijų kitų metodų derinys.

JOptionPane dialogo lango sukūrimas

importuoti javax.swing. JFrame;
importuoti javax.swing. JOptionPane;

viešasklasėJOptionPaneApp{
JOptionPaneApp() {
JFrame rėmelis = naujas JFrame();
JOptionPane.showMessageDialog (rėmas, "Tai yra JOptionPane pranešimų langas.");
}

instagram viewer

viešasstatinistuštumapagrindinis(String[] args){
naujas JOptionPaneApp();
}
}

Aukščiau pateiktas kodas sukuria tokį dialogo langą:

Nors JOptionPane pateikia standartinius dialogo langus, joje yra daug parinkčių, leidžiančių koreguoti jos elgesį. Pavyzdžiui, pranešimo dialogo langas gali būti vieno iš kelių tipų. Aukščiau pateiktas pavyzdys yra an INFORMATION_MESSAGE, kuris yra numatytasis. Kiti pranešimų tipai yra šie:

  • ERROR_MESSAGE
  • WARNING_MESSAGE
  • QUESTION_MESSAGE
  • PLAIN_MESSAGE

Klaidos pranešimo kūrimas

Štai pavyzdys, kaip JOptionPane dialogo lange naudoti kitokio tipo pranešimus:

JOptionPane.showMessageDialog (rėmas, "Tai yra JOptionPane klaidos pranešimo langas.",
"Klaida", JOptionPane. ERROR_MESSAGE);

Pakeiskite showMessageDialog() eilutę pradinėje programoje su aukščiau esančia kodo eilute ir pamatysite šį klaidos dialogo langą:

JDialog klasė

JDialog klasė leidžia kurti pasirinktinius dialogo langus. Tai Java klasė priklauso javax.swing paketą ir praplečia Dialog klasę. Ji turi prieigą prie daugybės tiesioginių ir netiesioginių metodų. Šioje „Java“ klasėje iš viso yra 16 Java konstruktoriai.

Be numatytojo konstruktoriaus, kiekvienas iš 15 kitų naudoja rėmelį, langą arba dialogo langą su kelių kitų argumentų deriniu.

Pagrindiniai JDialog konstruktoriai apima:

  • JDialog () sukuria dialogo langą be rėmelio, pavadinimo ar režimo.
  • JDialog (dialogo savininkas, eilutės pavadinimas, loginis modalas) sukuria dialogo langą su dialogo savininku, eilutės pavadinimu ir režimu.
  • JDialog (rėmo savininkas, eilutės pavadinimas, loginis modalas) sukuria dialogo langą su rėmelio savininku, eilutės pavadinimu ir režimu.
  • JDialog (lango savininkas, eilutės pavadinimas, loginis modalas) sukuria dialogo langą su lango savininku, eilutės pavadinimu ir režimu.

JDialogo dialogo lango sukūrimas

importuoti java.awt. „FlowLayout“;
importuoti java.awt.event. ActionEvent;
importuoti java.awt.event. ActionListener;
importuoti javax.swing. JButton;
importuoti javax.swing. JDialog;
importuoti javax.swing. JFrame;
importuoti javax.swing. JLabel;
importuoti javax.swing. WindowConstants;

viešasklasėJDialogApp{
JDialogApp() {
JFrame rėmelis = naujas JFrame();
JDialog dialogo langas = naujas JDialog (rėmas, tiesa);
dialog.setLayout(naujas FlowLayout());

JLabel displayText = naujas JLabel("Tai JDialogo langas.");
JButton btn = naujas JButton ("Gerai");

btn.addActionListener(naujas ActionListener() {
viešastuštumaveiksmas atliktas(ActionEvent e){
dialog.setVisible(klaidinga);
}
});

dialog.add (displayText);
dialogas.add (btn);

dialog.setSize(200,150);
dialog.setTitle("Dialogo langas");
dialog.setVisible(tiesa);
dialog.setDefaultCloseOperation (WindowConstants. DISPOSE_ON_CLOSE);
}

viešasstatinistuštumapagrindinis(Styginių args[]){
naujas JDialogApp();
}
}

Aukščiau pateiktas kodas sukuria tokį dialogo langą:

Yra keletas svarbių kodo aspektų, į kuriuos turėtumėte atkreipti dėmesį. Programa naudoja JDialog (rėmo savininkas, Būlio modalas) konstruktorius, kuriam pereina a JFrame o „tikroji“ reikšmė kaip argumentai. JFrame yra JDialog savininkas, o tai reiškia, kad jis yra atsakingas už dialogo lango rodymą. „Tikroji“ reikšmė reiškia, kad dialogo langas blokuoja įvestį į kitus susijusius langus, kai jis rodomas.

Aukščiau pateiktame kode konstruktorius nepriima pavadinimo kaip argumento. Tačiau rėmelio savininkui reikia titulo. Taigi šiai užduočiai galite naudoti setTitle() metodą, kuris pasiekiamas per „Dialog“ klasę, kurią išplečia „JDialog“. Kiti svarbūs kode metodai yra setVisible(), setSize(), ir setDefaultCloseOperation().

setVisible turi Būlio reikšmę ir yra atsakingas už kadro rodymą. setSize paima dialogo lango aukštį ir plotį. setDefaultCloseOperation pasirenka vieną iš trijų reikšmių, kad nuspręstų, kas atsitiks, kai vartotojas uždaro dialogo langą.

JFrame klasė

JDialog ir JOptionPane naudoja JFrame klasę dialogo langams kurti. Tačiau JFrame klasė gali sukurti dialogo langus pati. „JFrame“ klasė išplečia „Frame“ klasę ir, panašiai kaip „JDialog“ klasė, leidžia kurti pasirinktinius dialogo langus.

JFrame turi keturis konstruktorius ir kelis tiesioginius ir netiesioginius metodus, kuriuos turėsite naudoti kurdami dialogo langą.

JFrame dialogo lango sukūrimas

importuoti java.awt.event. ActionEvent;
importuoti java.awt.event. ActionListener;

importuoti javax.swing. JButton;
importuoti javax.swing. JFrame;
importuoti javax.swing. JLabel;
importuoti javax.swing. JPanel;
importuoti javax.swing. WindowConstants;

viešasklasėJFrameApp{
JFrameApp() {
JFrame rėmelis = naujas JFrame();
frame.setTitle("Dialogo langas");
JPanel skydelis = naujas JPanel ();

JLabel displayText = naujas JLabel ("Tai yra JFrame langas.");
panel.add (displayText);
JButton btn = naujas JButton ("Gerai mygtukas");

btn.addActionListener(naujas ActionListener() {
viešastuštumaveiksmas atliktas(ActionEvent e){
frame.setVisible(klaidinga);
}
});

panel.add (btn);

frame.add (panelis);
frame.setDefaultCloseOperation (WindowConstants. EXIT_ON_CLOSE);
frame.setSize(250, 150);
frame.setVisible(tiesa);
}

viešasstatinistuštumapagrindinis(String[] args){
naujas JFrameApp();
}
}

Aukščiau pateiktas kodas sukuria tokį dialogo langą:

Kode naudojamas numatytasis JFrame konstruktorius ir keli žinomi metodai, pvz., setTitle() metodas (naudojamas aukščiau esančioje JDialog programėlėje). Nepažįstamas objektas aukščiau pateiktoje programoje yra JPanel, kuris yra bendras konteineris. Tai suteikia JFrame lankstumo prie rėmelio pridėti kelis maketus ir komponentus.

The ActionListener() ir veiksmas atliktas () metodai apdoroja įvykį, kai vartotojas spustelėja Gerai mygtuką.

Kuri Java klasė yra geriausia kuriant dialogo langus?

Vienintelis JOptionPane klasės tikslas yra padaryti dialogo lango kūrimo procesą patogesnį Java kūrėjams. Tačiau, jei jums reikia labiau pritaikyto dialogo lango, JDialog klasė yra kitas geriausias pasirinkimas.

JFrame klasė kuria vartotojo sąsajas, tačiau galite ją naudoti kurdami daug skirtingų GUI elementų, įskaitant dialogo langus.

Dialogo lange, sukurtame naudojant JFrame klasę, yra sumažinta piktograma, o kitose - ne. Jei norite modalinio dialogo lango, kuriame vartotojas turi imtis veiksmų prieš atlikdamas užduotį, JFrame nėra geriausias būdas.

Kaip parašyti savo pirmąją Java GUI programą 

Skaitykite toliau

DalintisTviteryjeDalintisEl. paštas

Susijusios temos

  • Programavimas
  • Programavimas
  • Java
  • Kodavimo pamokos

Apie autorių

Kadeisha Kean (56 straipsniai paskelbti)

Kadeisha Kean yra visos programinės įrangos kūrėja ir techninių / technologijų rašytoja. Ji turi išskirtinį gebėjimą supaprastinti kai kurias sudėtingiausias technologines koncepcijas; gaminant medžiagą, kurią gali lengvai suprasti bet kuris technologijų naujokas. Ji aistringai rašo, kuria įdomią programinę įrangą ir keliauja po pasaulį (per dokumentinius filmus).

Daugiau iš Kadeisha Kean

Prenumeruokite mūsų naujienlaiškį

Prisijunkite prie mūsų naujienlaiškio, kad gautumėte techninių patarimų, apžvalgų, nemokamų el. knygų ir išskirtinių pasiūlymų!

Spauskite čia norėdami užsiprenumeruoti