Mega Code Archive

 
Categories / Java / Language Basics
 

Window Handler

import java.util.logging.ErrorManager; import java.util.logging.Filter; import java.util.logging.Formatter; import java.util.logging.Handler; import java.util.logging.Level; import java.util.logging.LogManager; import java.util.logging.LogRecord; import java.util.logging.Logger; import java.util.logging.SimpleFormatter; import javax.swing.JFrame; import javax.swing.JScrollPane; import javax.swing.JTextArea; class LogWindow extends JFrame {   private JTextArea textArea = new JTextArea();   public LogWindow() {     super("");     setSize(300, 300);     add(new JScrollPane(textArea));     setVisible(true);   }   public void showInfo(String data) {     textArea.append(data);     this.validate();   } } class WindowHandler extends Handler {   private LogWindow window = null;   private Formatter formatter = null;   private Level level = null;   private static WindowHandler handler = null;   private WindowHandler() {     LogManager manager = LogManager.getLogManager();     String className = this.getClass().getName();     String level = manager.getProperty(className + ".level");     setLevel(level != null ? Level.parse(level) : Level.INFO);     if (window == null)       window = new LogWindow();   }   public static synchronized WindowHandler getInstance() {     if (handler == null) {       handler = new WindowHandler();     }     return handler;   }   public synchronized void publish(LogRecord record) {     String message = null;     if (!isLoggable(record))       return;     message = getFormatter().format(record);     window.showInfo(message);   }   public void close() {   }   public void flush() {   } } public class Main {   private WindowHandler handler = null;   private Logger logger = null;   public Main() {     handler = WindowHandler.getInstance();     logger = Logger.getLogger("logging.handler");     logger.addHandler(handler);   }   public void logMessage() {     logger.info("Hello from ...");   }   public static void main(String args[]) {     Main demo = new Main();     demo.logMessage();     WindowHandler h = WindowHandler.getInstance();     LogRecord r = new LogRecord(Level.WARNING, "The Handler publish method...");     h.publish(r);   } }