// Stage F: using a WindowListener to handle a window-closing event. // Barry Cornelius, 19 June 2000 package java5; import java5.*; import java.awt. BorderLayout; import java.awt. Container; import java.util. EnumSet; import java.awt. Font; import javax.swing. JButton; import javax.swing. JFrame; import javax.swing. JTextField; // import static java.awt. Font.*; enum StyleFeatures{PLAIN, BOLD, ITALIC} public class GetDateProg { private static Font getFont(String pFamilyString, EnumSet pEnumSet, int pSize) { int tStyle = 0; for (StyleFeatures sf : pEnumSet) { System.out.println(sf.ordinal()); tStyle |= sf.ordinal(); } return new Font(pFamilyString, tStyle, pSize); } public static void main(final String[] pArgs) { final JFrame tJFrame = new JFrame("GetDateProg: Stage F"); final JTextField tJTextField = new JTextField("hello", 35); final JButton tJButton = new JButton("Get Date"); // final Font tFont = new Font("Dialog", BOLD|ITALIC, 12); // final Font tFont = new Font("Dialog", 20, Font.BOLD); final Font tFont = getFont("Dialog", EnumSet.of(StyleFeatures.BOLD, StyleFeatures.ITALIC), 12); // final Font tFont = getFont("Dialog", // EnumSet.of(StyleFeatures.PLAIN), 12); tJButton.setFont(tFont); System.out.println(tJButton.getFont()); final JButtonListener tJButtonListener = new JButtonListener(tJTextField); tJButton.addActionListener(tJButtonListener); final Container tContentPane = tJFrame.getContentPane(); tContentPane.add(tJTextField, BorderLayout.NORTH); tContentPane.add(tJButton, BorderLayout.SOUTH); final ExitWindowListener tExitWindowListener = new ExitWindowListener(); tJFrame.addWindowListener(tExitWindowListener); tJFrame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE); tJFrame.pack(); tJFrame.setVisible(true); } }