package jdepend.swingui; import java.awt.*; import java.awt.event.*; import javax.swing.*; /** * The <code>AboutDialog</code> displays the about information. * * @author <b>Mike Clark</b> * @author Clarkware Consulting, Inc. */ class AboutDialog extends JDialog { /** * Constructs an <code>AboutDialog</code> with the specified parent frame. * * @param parent Parent frame. */ public AboutDialog(JFrame parent) { super(parent); setTitle("About"); setResizable(false); getContentPane().setLayout(new BorderLayout()); setSize(300, 200); addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { dispose(); } }); JPanel panel = new JPanel(); panel.setLayout(new GridBagLayout()); JLabel titleLabel = new JLabel("JDepend"); titleLabel.setFont(new Font("dialog", Font.BOLD, 18)); JLabel nameLabel = new JLabel("Mike Clark"); nameLabel.setFont(new Font("dialog", Font.PLAIN, 12)); JLabel companyLabel = new JLabel("Clarkware Consulting, Inc."); companyLabel.setFont(new Font("dialog", Font.PLAIN, 12)); JLabel httpLabel = new JLabel("www.clarkware.com"); httpLabel.setFont(new Font("dialog", Font.PLAIN, 12)); JLabel blankLabel = new JLabel(" "); JButton closeButton = createButton("Close"); panel.add(titleLabel, createConstraints(1, 1)); panel.add(new JLabel(" "), createConstraints(1, 2)); panel.add(nameLabel, createConstraints(1, 3)); panel.add(companyLabel, createConstraints(1, 4)); panel.add(httpLabel, createConstraints(1, 5)); panel.add(new JLabel(" "), createConstraints(1, 6)); panel.add(new JLabel(" "), createConstraints(1, 7)); panel.add(closeButton, createConstraints(1, 9)); getContentPane().add("Center", panel); } /** * Creates and returns a button with the specified label. * * @param label Button label. * @return Button. */ private JButton createButton(String label) { JButton button = new JButton(label); button.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { dispose(); } }); return button; } /** * Creates and returns a grid bag constraint with the specified x and y * values. * * @param x X-coordinate. * @param y Y-coordinate. * @return GridBagConstraints */ private GridBagConstraints createConstraints(int x, int y) { GridBagConstraints constraints = new GridBagConstraints(); constraints.gridx = x; constraints.gridy = y; constraints.gridwidth = 1; constraints.gridheight = 1; constraints.anchor = GridBagConstraints.CENTER; constraints.weightx = 0.0; constraints.weighty = 0.0; return constraints; } }