Główną funkcją okna dialogowego jest pobieranie przez aplikację lub witrynę danych wejściowych od użytkownika. Dane wejściowe mogą być potwierdzeniem, że przeczytali wiadomość lub coś, co wprowadzili w polu tekstowym.

Okno dialogowe natychmiast przyciąga uwagę użytkownika. To doskonałe narzędzie do zbierania lub wyświetlania ważnych informacji.

Java to zróżnicowany język, który udostępnia kilka klas do tworzenia okien dialogowych. Te klasy obejmują JOptionPane, JDialog i JFrame.

Klasa JOptionPane

Standardowe okno dialogowe można utworzyć za pomocą jednej z kilku metod statycznych należących do klasy JOptionPane. Obejmują one:

  • showMessageDialog(), który przekazuje wiadomość do użytkownika.
  • pokażPotwierdźDialog(), który zadaje pytanie wymagające potwierdzenia.
  • showInputDialog(), który monituje użytkownika o wprowadzenie danych.
  • pokażOpcjeOkna(), który jest kombinacją trzech pozostałych metod.

Tworzenie okna dialogowego JOptionPane

import javax.swing. JFrame;
import javax.swing. JOptionPane;

publiczny

klasaJOptionPaneApp{
JOptionPaneApp() {
Rama JFrame = Nowy JRamka();
JOptionPane.showMessageDialog (ramka, "To jest okno wiadomości JOptionPane.");
}

publicznystatycznypróżniaGłówny(String[] argumenty){
Nowy JOptionPaneApp();
}
}

Powyższy kod tworzy następujące okno dialogowe:

Chociaż JOptionPane udostępnia standardowe okna dialogowe, ma wiele opcji pozwalających dostosować jego zachowanie. Na przykład okno dialogowe wiadomości może przyjmować jeden z kilku typów. Powyższy przykład jest przykładem an INFORMACJE_KOMUNIKAT, co jest wartością domyślną. Inne typy wiadomości to:

  • KOMUNIKAT O BŁĘDZIE
  • WIADOMOŚĆ OSTRZEGAWCZA
  • QUESTION_MESSAGE
  • ZWYKŁY_MESSAGE

Tworzenie komunikatu o błędzie

Oto przykład użycia innego typu wiadomości w oknie dialogowym JOptionPane:

JOptionPane.showMessageDialog (ramka, "To jest okno komunikatu o błędzie JOptionPane.",
"Błąd", JOptionPane. KOMUNIKAT O BŁĘDZIE);

Zastąpić showMessageDialog() wiersz w oryginalnym programie z wierszem kodu powyżej, a zobaczysz następujące okno dialogowe błędu:

Klasa JDialog

Klasa JDialog umożliwia tworzenie niestandardowych okien dialogowych. Ten Klasa Java należy do javax.swing pakiet i rozszerza klasę Dialog. Ma dostęp do szerokiej gamy metod bezpośrednich i pośrednich. Ta klasa Java ma w sumie 16 Konstruktory Javy.

Oprócz domyślnego konstruktora, każdy z 15 pozostałych przyjmuje ramkę, okno lub okno dialogowe z kombinacją kilku innych argumentów.

Podstawowe konstruktory JDialog obejmują:

  • JDialog() tworzy okno dialogowe bez ramki, tytułu lub trybu.
  • JDialog (właściciel okna dialogowego, tytuł ciągu, modalny logiczny) tworzy okno dialogowe z właścicielem okna dialogowego, tytułem ciągu i trybem.
  • JDialog (właściciel ramki, tytuł ciągu, modalny logiczny) tworzy okno dialogowe z właścicielem ramki, tytułem ciągu i trybem.
  • JDialog (właściciel okna, tytuł ciągu, modalny logiczny) tworzy okno dialogowe z właścicielem okna, tytułem ciągu i trybem.

Tworzenie okna dialogowego JDialog

import java.awt. Układ przepływu;
import java.awt.event. AkcjaZdarzenie;
import java.awt.event. Odbiornik akcji;
import javax.swing. JPrzycisk;
import javax.swing. JDialog;
import javax.swing. JFrame;
import javax.swing. J Etykieta;
import javax.swing. OknoStałe;

publicznyklasaJDialogApp{
JDialogApp() {
Rama JFrame = Nowy JRamka();
Okno dialogowe JDialog = Nowy JDialog (ramka, PRAWDA);
dialog.setUkład(Nowy Układ Przepływu());

JLabel displayText = Nowy JLabel("To jest okno JDialog.");
JButton btn = Nowy JButton("OK");

btn.addActionListener(Nowy OdbiornikAkcji() {
publicznypróżniaPrzedsięwzięcie wykonane(DziałanieZdarzenie e){
dialog.setVisible(fałszywy);
}
});

dialog.add (wyświetlany tekst);
dialog.dodaj (btn);

dialog.setRozmiar(200,150);
dialog.setTitle("Okno dialogowe");
dialog.setVisible(PRAWDA);
dialog.setDefaultCloseOperation (WindowConstants. DISPOSE_ON_CLOSE);
}

publicznystatycznypróżniaGłówny(argumenty ciągów[]){
Nowy JDialogApp();
}
}

Powyższy kod tworzy następujące okno dialogowe:

Jest kilka ważnych aspektów kodu, na które powinieneś zwrócić uwagę. Program wykorzystuje JDialog (właściciel ramki, modalny logiczny) konstruktora, do którego przechodzi a JFrame a „prawdziwa” wartość jako argumenty. JFrame jest właścicielem JDialog, co oznacza, że ​​odpowiada za wyświetlanie okna dialogowego. Wartość „prawda” oznacza, że ​​podczas wyświetlania okno dialogowe blokuje dane wejściowe do innych powiązanych okien.

Konstruktor w powyższym kodzie nie przyjmuje tytułu jako argumentu. Jednak właściciel ramki potrzebuje tytułu. Więc do tego zadania możesz użyć ustawTytuł() metodę, która jest dostępna za pośrednictwem klasy Dialog rozszerzanej przez JDialog. Inne ważne metody w kodzie to: ustaw Widoczne(), ustawRozmiar(), oraz setDefaultZamknijOperacja().

setVisible przyjmuje wartość logiczną i odpowiada za wyświetlanie ramki. setSize przyjmuje wysokość i szerokość okna dialogowego. setDefaultCloseOperation przyjmuje jedną z trzech wartości, aby zdecydować, co się stanie, gdy użytkownik zamknie okno dialogowe.

Klasa JFrame

JDialog i JOptionPane używają klasy JFrame do tworzenia okien dialogowych. Jednak klasa JFrame może samodzielnie tworzyć okna dialogowe. Klasa JFrame rozszerza klasę Frame i, podobnie jak klasa JDialog, umożliwia tworzenie niestandardowych okien dialogowych.

JFrame ma cztery konstruktory i kilka metod bezpośrednich i pośrednich, których będziesz potrzebować do utworzenia okna dialogowego.

Tworzenie okna dialogowego JFrame

import java.awt.event. AkcjaZdarzenie;
import java.awt.event. Odbiornik akcji;

import javax.swing. JPrzycisk;
import javax.swing. JFrame;
import javax.swing. J Etykieta;
import javax.swing. JPanel;
import javax.swing. OknoStałe;

publicznyklasaAplikacja JFrame{
JFrameApp() {
Rama JFrame = Nowy JRamka();
frame.setTitle("Okno dialogowe");
Panel JPanel = Nowy JPanel();

JLabel displayText = Nowy JLabel("To jest okno JFrame.");
panel.add (displayText);
JButton btn = Nowy JButton("Przycisk OK");

btn.addActionListener(Nowy OdbiornikAkcji() {
publicznypróżniaPrzedsięwzięcie wykonane(DziałanieZdarzenie e){
frame.setVisible(fałszywy);
}
});

panel.dodaj (btn);

ramka.dodaj (panel);
frame.setDefaultCloseOperation (WindowConstants. EXIT_ON_CLOSE);
rozmiar.zestawu ramki(250, 150);
frame.setVisible(PRAWDA);
}

publicznystatycznypróżniaGłówny(String[] argumenty){
Nowy JFrameApp();
}
}

Powyższy kod tworzy następujące okno dialogowe:

Kod używa domyślnego konstruktora JFrame i kilku znanych metod, takich jak ustawTytuł() metoda (używana w aplikacji JDialog powyżej). Nieznanym obiektem w powyższym programie jest JPanel, który jest kontenerem ogólnym. Daje to JFrame elastyczność w dodawaniu wielu układów i komponentów do ramki.

ten Odbiornik akcji() oraz Przedsięwzięcie wykonane() metody obsługują zdarzenie kliknięcia przez użytkownika OK przycisk.

Która klasa Java jest najlepsza do tworzenia okien dialogowych?

Jedynym celem klasy JOptionPane jest uczynienie procesu tworzenia okien dialogowych wygodniejszym dla programistów Java. Jeśli jednak potrzebujesz bardziej niestandardowego okna dialogowego, następną najlepszą opcją jest klasa JDialog.

Klasa JFrame tworzy interfejsy użytkownika, ale można jej używać do tworzenia wielu różnych elementów interfejsu GUI, w tym okien dialogowych.

Okno dialogowe utworzone za pomocą klasy JFrame ma zminimalizowaną ikonę, podczas gdy inne nie. Jeśli chcesz modalnego okna dialogowego, w którym użytkownik musi wykonać czynność przed wykonaniem zadania, JFrame nie jest najlepszym rozwiązaniem.

Jak napisać swoją pierwszą aplikację Java GUI 

Czytaj dalej

UdziałĆwierkaćUdziałE-mail

Powiązane tematy

  • Programowanie
  • Programowanie
  • Jawa
  • Poradniki kodowania

O autorze

Kadeisha Kean (56 opublikowanych artykułów)

Kadeisha Kean jest programistą zajmującym się pełnymi stosami oprogramowania i pisarzem technicznym/technologicznym. Ma wyraźną umiejętność upraszczania niektórych z najbardziej złożonych koncepcji technologicznych; produkcja materiału, który może być łatwo zrozumiały dla każdego nowicjusza w dziedzinie technologii. Pasjonuje się pisaniem, tworzeniem ciekawego oprogramowania i podróżowaniem po świecie (poprzez filmy dokumentalne).

Więcej od Kadeishy Kean

Zapisz się do naszego newslettera

Dołącz do naszego newslettera, aby otrzymywać porady techniczne, recenzje, bezpłatne e-booki i ekskluzywne oferty!

Kliknij tutaj, aby zasubskrybować