Làm thế nào để trình bày một thông điệp cảnh báo đơn giản trong java?


128

Đến từ .NET tôi rất quen gọi Alert () trong các ứng dụng máy tính để bàn. Tuy nhiên, trong ứng dụng máy tính để bàn java này, tôi chỉ muốn thông báo một thông báo "cảm ơn bạn đã sử dụng java" Tôi phải trải qua quá nhiều đau khổ này:

(sử dụng JOptionPane)

Có cách nào dễ hơn không?


10
Chính xác những gì bạn mong đợi từ "dễ dàng hơn"? Nếu đó là tính dài dòng, tại sao không bọc nó trong một số phương thức tiện ích tĩnh và ẩn nó đi, chẳng hạn? Nhân tiện, hướng dẫn chính thức là ở đây .
BalusC

5
Nếu bạn đọc tài liệu thay vì hướng dẫn 12 tuổi kèm theo phàn nàn ngay lập tức, bạn sẽ phát hiện ra [quá tải chỉ với hai tham số: docs.oracle.com/javase/7/docs/api/javax/swing/ , java.lang.Object). (Cái đầu tiên có thể là null.)
millimoose

Câu trả lời:


240

Tôi sẽ là người đầu tiên thừa nhận Java có thể rất dài dòng, nhưng tôi không nghĩ điều này là không hợp lý:

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

Nếu bạn nhập tĩnh javax.swing.JOptionPane.showMessageDialogbằng cách sử dụng:

import static javax.swing.JOptionPane.showMessageDialog;

Điều này tiếp tục giảm xuống

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

34
Không có gì sai với tính dài dòng. Trong thực tế, tôi coi đó là một trong những thế mạnh của nó.
MRE

14
@mre Tôi đoán đây là một trò đùa hoặc bạn đang hiểu nhầm "tính dài dòng"?
Dónal

36
@mre trừ khi bạn cần thực hành đánh máy để chuyển sang công việc thư ký, tôi không thấy mức độ dài dòng là mong muốn.
Dónal

5
@ Dónal Khi một số điều đơn giản cần cả một trang mã để làm việc, điều đó thực sự tạo ra rất nhiều việc làm thêm cho mọi người! :)
Evgeni Sergeev

5
@ Dù sử dụng phiên bản thứ hai, bạn cần thêm phần sau vào bản nhập của mìnhimport static javax.swing.JOptionPane.showMessageDialog
Dónal


31

Nếu bạn không thích "mức độ chi tiết", bạn luôn có thể bọc mã của mình theo một phương thức ngắn:

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

và cách sử dụng:

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

24

Ngay cả khi không nhập swing, bạn có thể nhận cuộc gọi trong một, tất cả có thể là chuỗi dài. Nếu không, chỉ cần sử dụng nhập khẩu swing và cuộc gọi đơn giản:

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

Vừa đủ dễ.


6

Gọi Phương thức "setWarningMsg ()" và truyền văn bản mà bạn muốn hiển thị.

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);
}

Hoặc chỉ sử dụng

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

Bạn có thể sử dụng JOptionPane. (WARNING_MESSAGE hoặc Information_MESSAGE hoặc ERROR_MESSAGE)

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.