2010-06-29 40 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); 
相关问题