A párbeszédpanelek fő funkciója az, hogy egy alkalmazás vagy webhely lekérjen bizonyos adatokat a felhasználótól. Ez a bevitel annak visszaigazolása lehet, hogy elolvastak egy üzenetet, vagy valamit, amit beírtak egy szövegmezőbe.
A párbeszédpanel azonnal leköti a felhasználó figyelmét. Tökéletes eszköz fontos információk összegyűjtésére vagy megjelenítésére.
A Java egy változatos nyelv, amely több osztályt biztosít párbeszédpanelek létrehozásához. Ezek az osztályok közé tartozik a JOptionPane, a JDialog és a JFrame.
A JOptionPane osztály
Létrehozhat egy szabványos párbeszédpanelt a JOptionPane osztályhoz tartozó statikus módszerek valamelyikével. Ezek tartalmazzák:
- showMessageDialog(), amely üzenetet küld a felhasználónak.
- showConfirmDialog(), amely megerősítést igénylő kérdést tesz fel.
- showInputDialog(), amely bevitelre kéri a felhasználót.
- showOptionDialog(), amely a három másik módszer kombinációja.
JOptionPane párbeszédpanel létrehozása
import javax.swing. JFrame;
import javax.swing. JOptionPane;nyilvánososztályJOptionPaneApp{
JOptionPaneApp() {
JFrame keret = új JFrame();
JOptionPane.showMessageDialog (keret: "Ez egy JOptionPane üzenetablak.");
}
nyilvánosstatikusüresfő-(String[] args){
új JOptionPaneApp();
}
}
A fenti kód a következő párbeszédpanelt hozza létre:
Bár a JOptionPane szabványos párbeszédpaneleket biztosít, számos beállítással rendelkezik, amelyek lehetővé teszik a viselkedés módosítását. Például az üzenet párbeszédpanel többféle típusú lehet. A fenti példa egy INFORMATION_MESSAGE, ami az alapértelmezett. A többi üzenettípus a következő:
- HIBA ÜZENET
- FIGYELMEZTETŐ ÜZENET
- QUESTION_MESSAGE
- PLAIN_MESSAGE
Hibaüzenet létrehozása
Íme egy példa arra, hogyan lehet más üzenettípust használni a JOptionPane párbeszédpanelen:
JOptionPane.showMessageDialog (keret, "Ez egy JOptionPane hibaüzenet ablak.",
"Hiba", JOptionPane. HIBA ÜZENET);
Helyettesíteni a showMessageDialog() sort az eredeti programban a fenti kódsorral, és a következő hibaablak jelenik meg:
A JDialog osztály
A JDialog osztály lehetővé teszi egyéni párbeszédpanelek létrehozását. Ez Java osztály tartozik a javax.swing csomagot, és kiterjeszti a Dialog osztályt. Közvetlen és közvetett módszerek széles skálájához fér hozzá. Ebben a Java osztályban összesen 16 van Java konstruktorok.
Az alapértelmezett konstruktoron kívül a másik 15 mindegyike egy keretet, egy ablakot vagy egy párbeszédpanelt számos egyéb argumentum kombinációjával.
Az elsődleges JDialog konstruktorok a következők:
- JDialog() keret, cím vagy mód nélküli párbeszédpanelt hoz létre.
- JDialog (párbeszédtulajdonos, karakterlánc címe, logikai modális) létrehoz egy párbeszédpanelt a párbeszédpanel tulajdonosával, a karakterlánc címével és a móddal.
- JDialog (Frame tulajdonos, String cím, logikai modális) létrehoz egy párbeszédpanelt a keret tulajdonosával, a karakterlánc címével és a móddal.
- JDialog (ablaktulajdonos, karakterlánc címe, logikai modális) létrehoz egy párbeszédpanelt az ablak tulajdonosával, a karakterlánc címével és a móddal.
JDialog párbeszédpanel létrehozása
import java.awt. FlowLayout;
import java.awt.event. ActionEvent;
import java.awt.event. ActionListener;
import javax.swing. JButton;
import javax.swing. JDialog;
import javax.swing. JFrame;
import javax.swing. JLabel;
import javax.swing. WindowConstants;nyilvánososztályJDialogApp{
JDialogApp() {
JFrame keret = új JFrame();
JDialog párbeszédablak = új JDialog (keret, igaz);
dialog.setLayout(új FlowLayout());JLabel displayText = új JLabel("Ez egy JDialog ablak.");
JButton btn = új JButton("OK");btn.addActionListener(új ActionListener() {
nyilvánosüresactionPerformed(ActionEvent e){
dialog.setVisible(hamis);
}
});dialog.add (displayText);
dialog.add (btn);dialog.setSize(200,150);
dialog.setTitle("Párbeszédablak");
dialog.setVisible(igaz);
dialog.setDefaultCloseOperation (WindowConstants. DISPOSE_ON_CLOSE);
}
nyilvánosstatikusüresfő-(String args[]){
új JDialogApp();
}
}
A fenti kód a következő párbeszédpanelt hozza létre:
A kódnak számos fontos szempontja van, amelyeket érdemes megjegyezni. A program a JDialog (keret tulajdonos, logikai modális) konstruktor, amelyre átmegy a JFrame és az „igaz” érték érvként. A JFrame a JDialog tulajdonosa, ami azt jelenti, hogy felelős a párbeszédpanel megjelenítéséért. Az „igaz” érték azt jelenti, hogy a párbeszédpanel blokkolja a bevitelt más kapcsolódó ablakokhoz, amikor megjelenik.
A fenti kódban szereplő konstruktor nem veszi a címet argumentumként. A keret tulajdonosának azonban szüksége van egy címre. Tehát ehhez a feladathoz használhatja a setTitle() metódus, amely a JDialog által kiterjesztett Dialog osztályon keresztül érhető el. A kódban szereplő további fontos módszerek az setVisible(), setSize(), és setDefaultCloseOperation().
A setVisible logikai értéket vesz fel, és felelős a keret megjelenítéséért. A setSize a párbeszédablak magasságát és szélességét veszi fel. A setDefaultCloseOperation három érték egyikét veszi igénybe annak eldöntéséhez, hogy mi történjen, ha a felhasználó bezárja a párbeszédpanelt.
A JFrame osztály
A JDialog és a JOptionPane egyaránt a JFrame osztályt használja párbeszédpanelek létrehozásához. A JFrame osztály azonban képes önálló párbeszédpaneleket létrehozni. A JFrame osztály kiterjeszti a Frame osztályt, és a JDialog osztályhoz hasonlóan lehetővé teszi egyéni párbeszédpanelek létrehozását.
A JFrame négy konstruktorral és számos közvetlen és közvetett módszerrel rendelkezik, amelyeket egy párbeszédpanel létrehozásához kell használnia.
JFrame párbeszédpanel létrehozása
import java.awt.event. ActionEvent;
import java.awt.event. ActionListener;import javax.swing. JButton;
import javax.swing. JFrame;
import javax.swing. JLabel;
import javax.swing. JPanel;
import javax.swing. WindowConstants;nyilvánososztályJFrameApp{
JFrameApp() {
JFrame keret = új JFrame();
frame.setTitle("Párbeszédablak");
JPanel panel = új JPanel();JLabel displayText = új JLabel("Ez egy JFrame ablak.");
panel.add (displayText);
JButton btn = új JButton("OK gomb");btn.addActionListener(új ActionListener() {
nyilvánosüresactionPerformed(ActionEvent e){
frame.setVisible(hamis);
}
});panel.add (btn);
frame.add (panel);
frame.setDefaultCloseOperation (WindowConstants. EXIT_ON_CLOSE);
frame.setSize(250, 150);
frame.setVisible(igaz);
}
nyilvánosstatikusüresfő-(String[] args){
új JFrameApp();
}
}
A fenti kód a következő párbeszédpanelt hozza létre:
A kód az alapértelmezett JFrame konstruktort és számos ismert módszert használja, mint például a setTitle() módszer (a fenti JDialog alkalmazásban használt). A fenti programban egy ismeretlen objektum a JPanel, amely egy általános tároló. Ez lehetővé teszi a JFrame számára, hogy több elrendezést és komponenst adjon hozzá egy kerethez.
A ActionListener() és action Performed() metódusok kezelik azt az eseményt, amikor a felhasználó rákattint a rendben gomb.
Melyik Java osztály a legjobb párbeszédpanelek létrehozásához?
A JOptionPane osztály egyetlen célja, hogy a párbeszédpanel-készítési folyamatot kényelmesebbé tegye a Java fejlesztők számára. Ha azonban egyénibb párbeszédpanelre van szüksége, a JDialog osztály a következő legjobb lehetőség.
A JFrame osztály felhasználói felületeket hoz létre, de felhasználhatja a grafikus felhasználói felület számos elemének létrehozására, beleértve a párbeszédpaneleket is.
A JFrame osztállyal létrehozott párbeszédpanelen van egy kicsinyített ikon, míg a többinél nincs. Ha modális párbeszédpanelt szeretne, amelyben a felhasználónak cselekednie kell egy feladat elvégzése előtt, akkor a JFrame nem a legjobb megközelítés.
Hogyan írjuk meg első Java GUI-alkalmazásunkat
Olvassa el a következőt
Kapcsolódó témák
- Programozás
- Programozás
- Jáva
- Kódolási oktatóanyagok
A szerzőről

Kadeisha Kean Full-stack szoftverfejlesztő és műszaki/technológiai író. Megvan az a képessége, hogy leegyszerűsítse a legbonyolultabb technológiai fogalmakat; olyan anyagok gyártása, amelyek könnyen megérthetők minden technológiai kezdő számára. Szenvedélyes az írás, az érdekes szoftverek fejlesztése és a világutazás (dokumentumfilmeken keresztül).
Iratkozzon fel hírlevelünkre
Csatlakozzon hírlevelünkhöz műszaki tippekért, ismertetőkért, ingyenes e-könyvekért és exkluzív ajánlatokért!
Kattintson ide az előfizetéshez