הפונקציה העיקרית של תיבת דו-שיח היא לאפליקציה או אתר לאחזר קלט מהמשתמש. קלט זה יכול להיות אישור לכך שהם קראו הודעה או משהו שהם מכניסים לאזור טקסט.

תיבת דו-שיח לוכדת מיד את תשומת הלב של המשתמש. זהו כלי מושלם לאיסוף או הצגת מידע חשוב.

Java היא שפה מגוונת המספקת מספר מחלקות ליצירת תיבות דיאלוג. מחלקות אלה כוללות JOptionPane, JDialog ו-JFrame.

מחלקת JOptionPane

אתה יכול ליצור תיבת דו-שיח סטנדרטית באמצעות אחת מכמה שיטות סטטיות השייכות למחלקה JOptionPane. אלו כוללים:

  • showMessageDialog(), המעביר הודעה למשתמש.
  • showConfirmDialog(), ששואל שאלה שדורשת אישור.
  • showInputDialog(), שמבקש מהמשתמש להזין קלט.
  • showOptionDialog(), שהוא שילוב של שלוש השיטות האחרות.

יצירת תיבת דו-שיח JOptionPane

יְבוּא javax.swing. JFrame;
יְבוּא javax.swing. JOptionPane;

פּוּמְבֵּימעמדJOptionPaneApp{
JOptionPaneApp() {
מסגרת JFrame = חָדָשׁ JFrame();
JOptionPane.showMessageDialog (מסגרת, "זהו חלון הודעה של JOptionPane.");
}

פּוּמְבֵּיסטָטִיבָּטֵלרָאשִׁי(מחרוזת[] args){
חָדָשׁ JOptionPaneApp();
}
}

הקוד למעלה יוצר את תיבת הדו-שיח הבאה:

instagram viewer

למרות ש-JOptionPane מספק תיבות דו-שיח סטנדרטיות, יש לה אפשרויות רבות המאפשרות לך לשנות את ההתנהגות שלה. לדוגמה, תיבת הדו-שיח של ההודעה יכולה לכלול אחד מכמה סוגים. זה שלמעלה הוא דוגמה ל- INFORMATION_MESSAGE, שהיא ברירת המחדל. סוגי ההודעות האחרים הם:

  • הודעת שגיאה
  • הודעת אזהרה
  • QUESTION_MESSAGE
  • PLAIN_MESSAGE

יצירת הודעת שגיאה

להלן דוגמה כיצד להשתמש בסוג הודעה אחר עבור הדו-שיח של JOptionPane:

JOptionPane.showMessageDialog (מסגרת, "זהו חלון הודעת שגיאה של JOptionPane.",
"שגיאה", JOptionPane. הודעת שגיאה);

החלף את ה showMessageDialog() שורה בתוכנית המקורית עם שורת הקוד למעלה, ותראה את תיבת הדו-שיח של השגיאה הבאה:

כיתת JDialog

המחלקה JDialog מאפשרת לך ליצור תיבות דו-שיח מותאמות אישית. זֶה שיעור Java שייך ל javax.swing חבילה ומרחיבה את מחלקה Dialog. יש לו גישה למגוון רחב של שיטות ישירות ועקיפות. בכיתה זו יש 16 בסך הכל בנאי ג'אווה.

מלבד בנאי ברירת המחדל, כל אחד מ-15 האחרים לוקח מסגרת, חלון או דו-שיח עם שילוב של כמה ארגומנטים אחרים.

ה-JDialog Constructors העיקריים כוללים:

  • 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("אישור");

btn.addActionListener(חָדָשׁ ActionListener() {
פּוּמְבֵּיבָּטֵלבוצעה פעולה(ActionEvent ה){
dialog.setVisible(שֶׁקֶר);
}
});

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

dialog.setSize(200,150);
dialog.setTitle("חלון דיאלוג");
dialog.setVisible(נָכוֹן);
dialog.setDefaultCloseOperation (WindowConstants. DISPOSE_ON_CLOSE);
}

פּוּמְבֵּיסטָטִיבָּטֵלרָאשִׁי(מחרוזת ארגומנטים[]){
חָדָשׁ JDialogApp();
}
}

הקוד למעלה יוצר את תיבת הדו-שיח הבאה:

יש כמה היבטים חשובים של הקוד שכדאי לשים לב אליהם. התוכנית משתמשת ב- JDialog (בעל מסגרת, מודל בוליאני) קונסטרוקטור, אליו הוא עובר א 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("אישור כפתור");

btn.addActionListener(חָדָשׁ ActionListener() {
פּוּמְבֵּיבָּטֵלבוצעה פעולה(ActionEvent ה){
frame.setVisible(שֶׁקֶר);
}
});

panel.add (btn);

frame.add (פאנל);
frame.setDefaultCloseOperation (WindowConstants. EXIT_ON_CLOSE);
frame.setSize(250, 150);
frame.setVisible(נָכוֹן);
}

פּוּמְבֵּיסטָטִיבָּטֵלרָאשִׁי(מחרוזת[] args){
חָדָשׁ JFrameApp();
}
}

הקוד למעלה יוצר את תיבת הדו-שיח הבאה:

הקוד משתמש בבנאי JFrame המוגדר כברירת מחדל, ובכמה שיטות מוכרות, כגון setTitle() שיטה (בשימוש באפליקציית JDialog למעלה). אובייקט לא מוכר בתוכנית למעלה הוא JPanel, שהוא מיכל גנרי. זה נותן ל-JFrame את הגמישות להוסיף פריסות ורכיבים מרובים למסגרת.

ה ActionListener() ו actionPerformed() שיטות מטפלות באירוע של לחיצה של משתמש על בסדר לַחְצָן.

איזו מחלקת Java היא הטובה ביותר ליצירת תיבות דיאלוג?

המטרה היחידה של מחלקת JOptionPane היא להפוך את תהליך יצירת תיבת הדו-שיח לנוח יותר עבור מפתחי Java. עם זאת, אם אתה צריך תיבת דו-שיח מותאמת אישית יותר, מחלקה JDialog היא האפשרות הטובה ביותר הבאה.

מחלקת JFrame יוצרת ממשקי משתמש, אבל אתה יכול להשתמש בה כדי ליצור אלמנטים רבים ושונים של ממשק משתמש, כולל תיבות דו-שיח.

לתיבת הדו-שיח שנוצרה עם מחלקת JFrame יש סמל ממוזער, בעוד שלאחרים אין. אם אתה רוצה תיבת דו-שיח מודאלית, שהמשתמש חייב לפעול לפני השלמת משימה, אז JFrame היא לא הגישה הטובה ביותר.

כיצד לכתוב את אפליקציית Java GUI הראשונה שלך 

קרא הבא

לַחֲלוֹקצִיוּץלַחֲלוֹקאימייל

נושאים קשורים

  • תִכנוּת
  • תִכנוּת
  • Java
  • הדרכות קידוד

על הסופר

קדיישה קין (56 מאמרים שפורסמו)

קדיישה קין היא מפתחת תוכנה מלאה וכותבת טכנית/טכנולוגית. יש לה את היכולת המובהקת לפשט כמה מהמושגים הטכנולוגיים המורכבים ביותר; ייצור חומר שניתן להבין בקלות על ידי כל טירון טכנולוגיה. היא נלהבת מכתיבה, פיתוח תוכנות מעניינות ולטייל בעולם (באמצעות סרטים תיעודיים).

עוד מתוך קדיישה קין

הירשם לניוזלטר שלנו

הצטרף לניוזלטר שלנו לקבלת טיפים טכניים, ביקורות, ספרים אלקטרוניים בחינם ומבצעים בלעדיים!

לחץ כאן כדי להירשם