package jp.gr.java_conf.skrb.logging; import java.awt.Container; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.logging.Logger; import java.util.logging.Level; import javax.swing.Box; import javax.swing.BoxLayout; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JTextField; import javax.swing.border.TitledBorder; public class FavoriteNumberWithLog1 { private JTextField field; private int favorite; protected static Logger logger = Logger.getLogger("jp.ne.airnet.sakuraba.logging"); public FavoriteNumberWithLog1() {} public void init() { JFrame frame = new JFrame("Favorite Number with Log"); frame.setBounds(100, 100, 300, 80); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); logger.config("JFrame@" + Integer.toHexString(frame.hashCode()) + " is created."); Container pane = frame.getContentPane(); pane.setLayout(new BoxLayout(pane, BoxLayout.X_AXIS)); field = new JTextField(10); field.setBorder(new TitledBorder("Your Favorite Number")); pane.add(field); logger.config("JTextField@" + Integer.toHexString(field.hashCode()) + " is created."); pane.add(Box.createHorizontalStrut(20)); JButton button = new JButton("Œˆ’è"); button.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent event){ updateNumber(); } }); pane.add(button); logger.config("JButton@" + Integer.toHexString(button.hashCode()) + " is created."); frame.setVisible(true); logger.config("JFrame@" + Integer.toHexString(frame.hashCode()) + " shows."); } private void updateNumber() { logger.entering("FavoriteNubmerWithLog1", "updateNubmer"); try { favorite = Integer.parseInt(field.getText()); logger.info("Your Favorite Number is " + favorite); } catch (NumberFormatException ex) { logger.log(Level.WARNING, "Non-number:[" + field.getText() + "] was inputted.", ex); } finally { field.setText(""); logger.exiting("FavoriteNubmerWithLog1", "updateNubmer"); } } public static void main(String[] args) { new FavoriteNumberWithLog1().init(); } }