2010-06-29 50 views
2

我正在尋找一個小框架,以一種常見的方式存儲我的所有消息。我會舉一個更好的理解的例子。一個很好的方式,讓我的所有消息在Java

在我的代碼的一部分,在一個特定的JFrame我一個警告是這樣的:

JOptionPane.showMessageDialog(null, "Error, you must provide an integer value", "ERROR", JOptionPane.ERROR_MESSAGE); 

所以,這個字符串:「錯誤,你必須提供一個整數值」。我想有它特定的「日誌」,或類似的東西,所以我可以做這樣的事情:

JOptionPane.showMessageDialog(null, Messages.getMessage(Messages.INTEGER_VALUE), "ERROR", JOptionPane.ERROR_MESSAGE); 

很難解釋,希望你能幫助我。

謝謝!

+0

的log4j可能會有所幫助 - http://logging.apache.org/log4j/1.2/ – Andreas 2010-06-29 21:11:26

+0

您是否希望將這些字符串外部化爲錯誤消息文件以便以後輕鬆更改? – 2010-06-29 21:12:08

回答

11

聽起來像你需要一個ResourceBundle。它允許您維護針對代碼的基於區域設置的用戶可顯示消息。

它不是一個外部框架,它是JavaSE API的一部分。

+0

+1爲直接點。 – corsiKa 2010-06-29 21:13:36

+2

要添加到本回復中,有關ResourceBundle的教程,請參閱:http://java.sun.com/docs/books/tutorial/i18n/resbundle/index.html – user268396 2010-06-29 21:13:37

+1

太好了,正是我所期待的!謝了,兄弟。 – santiagobasulto 2010-06-29 21:51:28

0

創建一個名爲「消息」

這裏面靜態類,有一個稱爲getMessage方法,它接受的整數,並返回對應於碼正確的錯誤消息。

0

聽起來更像是你想爲你的錯誤消息查找表。你可以得到花哨,實際上使一個類來爲你做或者做一些簡單:

String errors[] = {"Some error","Some other error"}; 
JOptionPane.showMessageDialog(null,errors[0],"ERROR", JOptionPane.ERROR_MESSAGE); 

Map<String,String> errors = new HashMap<String,String>(); 
errors.put("PROVIDE_INT","Error, you must provide an integer value"); 
JOptionPane.showMessageDialog(null,errors.get("PROVIDE_INT"),"ERROR", JOptionPane.ERROR_MESSAGE); 
1

或者......你可以寫你自己的迷你消息工具,如: -

public class MessageUtil { 
    enum Message { 
     ERROR_INTEGER_REQUIRED("Error", "Error, you must provide an integer value"), 
     ERROR_STRING_REQUIRED("Error", "Error, you must provide a string value"), 
     ERROR_BLA_BLA("Error", "Error, you are doomed"), 
     INFO_DATA_SAVED("Note", "Data is successfully saved"); 

     String title; 
     String msg; 

     private Message(String title, String msg) { 
      this.title = title; 
      this.msg = msg; 
     } 
    } 

    public static void display(Message message) { 
     JOptionPane.showMessageDialog(null, message.msg, message.title, JOptionPane.ERROR_MESSAGE); 
    } 
} 

然後,你可以做這樣的事情: -

MessageUtil.display(ERROR_INTEGER_REQUIRED); 
相關問題