Основната функция на диалоговия прозорец е приложението или уебсайтът да извлича някои данни от потребителя. Това въвеждане може да бъде потвърждение, че са прочели съобщение или нещо, което въвеждат в текстова област.

Диалогов прозорец незабавно привлича вниманието на потребителя. Това е идеален инструмент за събиране или показване на важна информация.

Java е разнообразен език, който предоставя няколко класа за създаване на диалогови прозорци. Тези класове включват JOptionPane, JDialog и JFrame.

Класът JOptionPane

Можете да създадете стандартен диалогов прозорец, като използвате един от няколкото статични метода, принадлежащи на класа JOptionPane. Те включват:

  • showMessageDialog(), което предава съобщение до потребителя.
  • showConfirmDialog(), което задава въпрос, който изисква потвърждение.
  • showInputDialog(), което подканва потребителя за въвеждане.
  • showOptionDialog(), което е комбинация от трите други метода.

Създаване на диалогов прозорец JOptionPane

внос javax.swing. JFrame;
внос javax.swing. JOptionPane;
instagram viewer

общественокласПриложение JOptionPane{
JOptionPaneApp() {
JFrame рамка = нов JFrame();
JOptionPane.showMessageDialog (рамка, "Това е прозорец за съобщение на JOptionPane.");
}

общественостатиченнищоженглавен(Аргументи низ []){
нов JOptionPaneApp();
}
}

Кодът по-горе създава следния диалогов прозорец:

Въпреки че JOptionPane предоставя стандартни диалогови прозорци, той има много опции, които ви позволяват да настроите поведението му. Например диалоговият прозорец за съобщение може да приеме един от няколко типа. Този по-горе е пример за INFORMATION_MESSAGE, което е по подразбиране. Другите типове съобщения са:

  • СЪОБЩЕНИЕ ЗА ГРЕШКА
  • WARNING_MESSAGE
  • QUESTION_MESSAGE
  • PLAIN_MESSAGE

Създаване на съобщение за грешка

Ето пример за това как да използвате различен тип съобщение за вашия диалогов прозорец JOptionPane:

JOptionPane.showMessageDialog (кадър, "Това е прозорец със съобщение за грешка на JOptionPane.",
„Грешка“, JOptionPane. СЪОБЩЕНИЕ ЗА ГРЕШКА);

Заменете showMessageDialog() ред в оригиналната програма с реда код по-горе и ще видите следния диалогов прозорец за грешка:

Класът JDialog

Класът JDialog ви позволява да създавате персонализирани диалогови прозорци. Това Java клас принадлежи към javax.swing пакет и разширява класа Dialog. Той има достъп до голямо разнообразие от преки и непреки методи. Този Java клас има общо 16 Java конструктори.

Освен конструктора по подразбиране, всеки от останалите 15 взема рамка, прозорец или диалог с комбинация от няколко други аргумента.

Основните конструктори на JDialog включват:

  • JDialog() създава диалогов прозорец без рамка, заглавие или режим.
  • JDialog (собственик на диалоговия прозорец, заглавие на низ, булев модален) създава диалогов прозорец със собственик на диалоговия прозорец, заглавие на низ и режим.
  • JDialog (собственик на рамка, заглавие на низ, булев модален) създава диалогов прозорец със собственик на рамката, заглавие на низ и режим.
  • JDialog (собственик на прозорец, заглавие на низ, булев модален) създава диалогов прозорец със собственик на прозорец, заглавие на низ и режим.

Създаване на диалогов прозорец на JDialog

внос java.awt. FlowLayout;
внос java.awt.event. ActionEvent;
внос java.awt.event. ActionListener;
внос javax.swing. JButton;
внос javax.swing. JDialog;
внос javax.swing. JFrame;
внос javax.swing. JLabel;
внос javax.swing. WindowConstants;

общественокласJDialogApp{
JDialogApp() {
JFrame рамка = нов JFrame();
JDialog диалог = нов JDialog (рамка, вярно);
dialog.setLayout(нов FlowLayout());

JLabel displayText = нов JLabel("Това е прозорец на JDialog.");
JButton btn = нов JButton("OK");

btn.addActionListener(нов ActionListener() {
общественонищоженизвършено действие(Събитие на действие д){
dialog.setVisible(фалшиво);
}
});

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

dialog.setSize(200,150);
dialog.setTitle("Диалогов прозорец");
dialog.setVisible(вярно);
dialog.setDefaultCloseOperation (WindowConstants. DISPOSE_ON_CLOSE);
}

общественостатиченнищоженглавен(Аргументи на низ[]){
нов JDialogApp();
}
}

Кодът по-горе създава следния диалогов прозорец:

Има няколко важни аспекта на кода, които трябва да обърнете внимание. Програмата използва JDialog (собственик на рамка, булев модален) конструктор, към който преминава a JFrame и "истинската" стойност като аргументи. JFrame е собственик на JDialog, което означава, че той е отговорен за показването на диалоговия прозорец. Стойността „true“ означава, че диалоговият прозорец блокира въвеждането в други свързани прозорци, когато се показва.

Конструкторът в кода по-горе не приема заглавие като свой аргумент. Собственикът на рамката обаче се нуждае от заглавие. Така че за тази задача можете да използвате setTitle() метод, който е достъпен чрез класа Dialog, който JDialog разширява. Другите важни методи в кода са setVisible(), setSize(), и setDefaultCloseOperation().

setVisible приема булева стойност и отговаря за показването на рамката. setSize приема височината и ширината на диалоговия прозорец. setDefaultCloseOperation приема една от трите стойности, за да реши какво ще се случи, когато потребителят затвори диалоговия прозорец.

Класът JFrame

JDialog и JOptionPane използват класа JFrame за създаване на диалогови прозорци. Въпреки това, класът JFrame може да създава диалогови прозорци самостоятелно. Класът JFrame разширява класа Frame и, подобно на класа JDialog, ви позволява да създавате персонализирани диалогови прозорци.

JFrame има четири конструктора и няколко преки и непреки метода, които ще трябва да използвате, за да създадете диалогов прозорец.

Създаване на диалогов прозорец на JFrame

внос java.awt.event. ActionEvent;
внос java.awt.event. ActionListener;

внос javax.swing. JButton;
внос javax.swing. JFrame;
внос javax.swing. JLabel;
внос javax.swing. JPanel;
внос javax.swing. WindowConstants;

общественокласJFrameApp{
JFrameApp() {
JFrame рамка = нов JFrame();
frame.setTitle("Диалогов прозорец");
JPanel панел = нов JPanel();

JLabel displayText = нов JLabel("Това е прозорец на JFrame.");
panel.add (displayText);
JButton btn = нов JButton("Бутон OK");

btn.addActionListener(нов ActionListener() {
общественонищоженизвършено действие(Събитие на действие д){
frame.setVisible(фалшиво);
}
});

panel.add (btn);

рамка.добавяне (панел);
frame.setDefaultCloseOperation (WindowConstants. EXIT_ON_CLOSE);
frame.setSize(250, 150);
frame.setVisible(вярно);
}

общественостатиченнищоженглавен(Аргументи низ []){
нов JFrameApp();
}
}

Кодът по-горе създава следния диалогов прозорец:

Кодът използва конструктора на JFrame по подразбиране и няколко познати метода, като например setTitle() метод (използван в приложението JDialog по-горе). Непознат обект в програмата по-горе е JPanel, който е общ контейнер. Това дава на JFrame гъвкавостта да добавя множество оформления и компоненти към рамка.

В ActionListener() и извършено действие() методи обработват събитието, когато потребител щракне върху Добре бутон.

Кой Java клас е най-добър за създаване на диалогови кутии?

Единствената цел на класа JOptionPane е да направи процеса на създаване на диалогов прозорец по-удобен за Java разработчиците. Въпреки това, ако имате нужда от по-персонализиран диалогов прозорец, класът JDialog е следващата най-добра опция.

Класът JFrame създава потребителски интерфейси, но можете да го използвате за създаване на много различни елементи на GUI, включително диалогови прозорци.

Диалоговият прозорец, създаден с класа JFrame, има минимизирана икона, докато останалите нямат. Ако искате модален диалогов прозорец, който потребителят трябва да предприеме, преди да завърши задача, тогава JFrame не е най-добрият подход.

Как да напишете първото си Java GUI приложение 

Прочетете Следващото

ДялтуитДялелектронна поща

Свързани теми

  • Програмиране
  • Програмиране
  • Java
  • Уроци по кодиране

За автора

Кадейша Кийн (публикувани 56 статии)

Kadeisha Kean е разработчик на софтуер с пълен стек и писател по технически/технологии. Тя има отчетливата способност да опростява някои от най-сложните технологични концепции; производство на материал, който може лесно да бъде разбран от всеки начинаещ в технологиите. Тя е страстна да пише, разработва интересен софтуер и да пътува по света (чрез документални филми).

Още от Kadeisha Kean

Абонирайте се за нашия бюлетин

Присъединете се към нашия бюлетин за технически съвети, ревюта, безплатни електронни книги и ексклузивни оферти!

Щракнете тук, за да се абонирате