วิธีการนำเสนอข้อความแจ้งเตือนง่ายๆใน java?


128

มาจาก. NET ฉันจึงใช้การโทรแจ้งเตือน () ในแอปเดสก์ท็อป อย่างไรก็ตามในแอป java บนเดสก์ท็อปนี้ฉันแค่ต้องการแจ้งเตือนข้อความว่า "ขอบคุณที่ใช้ java" ฉันต้องผ่านความทุกข์ทรมานมากมาย:

(ใช้ JOptionPane)

มีวิธีที่ง่ายกว่านี้ไหม?


10
สิ่งที่คุณคาดหวังจาก "ง่ายขึ้น"? ถ้ามันเป็นความฟุ่มเฟือยทำไมไม่เพียงห่อด้วยวิธียูทิลิตี้แบบคงที่แล้วซ่อนไว้ โดยวิธีการอย่างเป็นทางการสอนที่นี่
BalusC

5
หากคุณอ่านเอกสารแทนที่จะเป็นแบบฝึกหัดอายุ 12 ปีตามด้วยการบ่นทันทีคุณจะพบว่ามี [เกินพิกัดที่มีพารามิเตอร์เพียงสองตัว: docs.oracle.com/javase/7/docs/api/javax/swing/… , java.lang.Object) (อันแรกอาจเป็นโมฆะ)
มิลลิโม

คำตอบ:


240

ฉันจะเป็นคนแรกที่ยอมรับว่า Java สามารถใช้งานได้ละเอียดมาก แต่ฉันไม่คิดว่านี่จะไม่มีเหตุผล:

JOptionPane.showMessageDialog(null, "My Goodness, this is so concise");

หากคุณนำเข้าแบบคงที่javax.swing.JOptionPane.showMessageDialogโดยใช้:

import static javax.swing.JOptionPane.showMessageDialog;

ซึ่งจะลดลงไปอีก

showMessageDialog(null, "This is even shorter");

34
ไม่มีอะไรผิดปกติกับความฟุ่มเฟื่อย อันที่จริงฉันคิดว่าจุดแข็งอย่างหนึ่งของมัน
MRE

14
@ ฉันเดาว่านี่เป็นเรื่องตลกหรือคุณเข้าใจผิด "ฟุ่มเฟื่อย"?
Dónal

36
@mre เว้นแต่คุณจะต้องการการฝึกพิมพ์เพื่อเปลี่ยนไปทำงานเลขานุการฉันไม่เห็นว่าการใช้คำฟุ่มเฟือยเป็นที่พึงปรารถนา
Dónal

5
@ Dónalเมื่อสิ่งง่ายๆบางอย่างต้องใช้โค้ดทั้งหน้าเพื่อทำงานนั่นจะสร้างงานพิเศษมากมายให้กับผู้คน! :)
Evgeni Sergeev

5
@ อนุญาตให้ใช้เวอร์ชันที่สองคุณต้องเพิ่มสิ่งต่อไปนี้ในการนำเข้าของคุณimport static javax.swing.JOptionPane.showMessageDialog
Dónal

38

สมมติว่าคุณมี JFrame อยู่แล้วเพื่อเรียกสิ่งนี้จาก:

JOptionPane.showMessageDialog(frame, "thank you for using java");

ดูบทช่วยสอน Java: วิธีสร้างกล่องโต้ตอบ
ดูJavaDoc


4
อาร์กิวเมนต์แรกสามารถnullถ้าคุณไม่ได้มีความJFrameพร้อมใช้งาน
Drew Noakes

5
หมายเหตุ (ผู้ที่อาจกังวล): JOptionPaneอยู่ในjavax.swing
Evgeni Sergeev

31

หากคุณไม่ชอบ "ฟุ่มเฟื่อย" คุณสามารถห่อรหัสของคุณด้วยวิธีการสั้น ๆ :

private void msgbox(String s){
   JOptionPane.showMessageDialog(null, s);
}

และการใช้งาน:

msgbox("don't touch that!");

24

แม้ว่าจะไม่มีการนำเข้าวงสวิงคุณก็สามารถรับสายได้ในครั้งเดียวไม่ว่าจะเป็นสตริงแบบยาว มิฉะนั้นให้ใช้การนำเข้าสวิงและเรียกง่ายๆ:

JOptionPane.showMessageDialog(null, "Thank you for using Java", "Yay, java", JOptionPane.PLAIN_MESSAGE);

ง่ายพอ


6

เรียก "setWarningMsg ()" Method และส่งข้อความที่คุณต้องการแสดง

exm:- setWarningMsg("thank you for using java");


public static void setWarningMsg(String text){
    Toolkit.getDefaultToolkit().beep();
    JOptionPane optionPane = new JOptionPane(text,JOptionPane.WARNING_MESSAGE);
    JDialog dialog = optionPane.createDialog("Warning!");
    dialog.setAlwaysOnTop(true);
    dialog.setVisible(true);
}

หรือเพียงแค่ใช้

JOptionPane optionPane = new JOptionPane("thank you for using java",JOptionPane.WARNING_MESSAGE);
JDialog dialog = optionPane.createDialog("Warning!");
dialog.setAlwaysOnTop(true); // to show top of all other application
dialog.setVisible(true); // to visible the dialog

คุณสามารถใช้ JOptionPane (WARNING_MESSAGE หรือ INFORMATION_MESSAGE หรือ ERROR_MESSAGE)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.