//测试用代吗public class logTest { public static void main(String[] args){ Log log = new Log(); log.AddAppender(new ConsoleAppender()); log.debug("哈哈哈哈哈哈!"); } }//接口,用来提供输出项的抽象 public interface Appender { public void println(Object obj); }//在Cosole进行输出 public class ConsoleAppender implements Appender { public void println(Object obj) { System.out.println(obj); }}//用来替代System.out,可以指定不同的Appender,因此可以同时输出到Console,TextArea等任何你想要的地方 public class Log { List lappender = new ArrayList(); public void debug(Object obj){ Iterator it = lappender.iterator(); while(it.hasNext()){ Appender app = (Appender)it.next(); app.println(obj); } } public void info(Object obj){
} public void AddAppender(Appender appen){ this.lappender.add(appen); } public void RemoveAppender(Appender appen){ this.lappender.add(appen); } } //简单示例,如何在textArea里面接到输出 public class textAreaAppender extends JTextArea implements Appender{ /* (non-Javadoc) * @see com.gKarer.Appender#println(java.lang.Object) */ public void println(Object obj) { this.append(obj.toString()); }}同样你可以实现Appender接口,获得到各个地方的输出,甚至于mail,net Send,短信等等等等(当然这些都是需要相应支持的)
JOption.showMessageDialog(this,"这里写你要显示的内容");
status.append("这里写你要显示的内容");
这个时没有办法实现的,但是你可以通过变通的方法降低耦合性,并且实现要求。可以参考log4j的实现,或者看我写的小demo,需要的话留个mail即可
public static void main(String[] args){
Log log = new Log();
log.AddAppender(new ConsoleAppender());
log.debug("哈哈哈哈哈哈!");
}
}//接口,用来提供输出项的抽象
public interface Appender { public void println(Object obj);
}//在Cosole进行输出
public class ConsoleAppender implements Appender {
public void println(Object obj) {
System.out.println(obj);
}}//用来替代System.out,可以指定不同的Appender,因此可以同时输出到Console,TextArea等任何你想要的地方
public class Log {
List lappender = new ArrayList();
public void debug(Object obj){
Iterator it = lappender.iterator();
while(it.hasNext()){
Appender app = (Appender)it.next();
app.println(obj);
}
}
public void info(Object obj){
}
public void AddAppender(Appender appen){
this.lappender.add(appen);
}
public void RemoveAppender(Appender appen){
this.lappender.add(appen);
}
}
//简单示例,如何在textArea里面接到输出
public class textAreaAppender extends JTextArea implements Appender{ /* (non-Javadoc)
* @see com.gKarer.Appender#println(java.lang.Object)
*/
public void println(Object obj) {
this.append(obj.toString());
}}同样你可以实现Appender接口,获得到各个地方的输出,甚至于mail,net Send,短信等等等等(当然这些都是需要相应支持的)