⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cmpaboutbox.java

📁 java base64
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
/*
CMPAboutBox.java an About Box template

copyright (c) 1999-2008 Roedy Green, Canadian Mind Products
may be copied and used freely for any purpose but military.
Roedy Green
Canadian Mind Products
#101 - 2536 Wark Street
Victoria, BC Canada
V8T 4G8
tel: (250) 361-9093
roedy g at mindprod dotcom
http://mindprod.com
*/
package com.mindprod.common11;

import java.awt.*;
import java.awt.event.*;

/**
 * An AWT About box that truly tells you about he program, not just the author's name.
 *
 * @author Roedy Green
 * @version 1.1, 2006-03-04
 * @noinspection FieldCanBeLocal
 */
public final class CMPAboutBox extends Dialog
    {
    // ------------------------------ FIELDS ------------------------------

    /**
     * true if debugging
     */
    private static final boolean DEBUGGING = false;

    private static final Color BLACK = Color.black;

    private static final Color DARK_GREEN = new Color( 0x008000 );

    private static final Color LABEL_FOREGROUND = new Color( 0x0000b0 );

    /**
     * for titles
     */
    private static final Color TITLE_FOREGROUND = new Color( 0xdc143c );

    private static final Color WHITE = Color.white;

    /**
     * for for titles and About buttons
     */
    private static final Font TITLE_FONT = new Font( "Dialog", Font.BOLD, 16 );

    /**
     * button to dismiss the dialog
     */
    private Button _dismissButton;

    /**
     * line 1 of CMP mailing address
     */
    private Label _addr1;

    /**
     * line 2 of CMP mailing address
     */
    private Label _addr2;

    /**
     * program author
     */
    private Label _author;

    /**
     * Canadian Mind Products
     */
    private Label _cmp;

    /**
     * copyright notice
     */
    private Label _copyright;

    /**
     * download URL
     */
    private Label _http;

    /**
     * contact email
     */
    private Label _mailto;

    /**
     * CMP phone number
     */
    private Label _phone;

    /**
     * program name and version
     */
    private Label _prognameVersion;

    /**
     * line 1 of what program is for
     */
    private Label _purpose1;

    /**
     * line 2 of what program is for
     */
    private Label _purpose2;

    /**
     * yyyy-mm-dd this version released
     */
    private Label _released;

    /**
     * is prgram free, shareware etc.
     */
    private Label _status;

    // -------------------------- PUBLIC INSTANCE  METHODS --------------------------
    /**
     * Create an about box, with default author Roedy Green
     *
     * @param parent             frame for this about box.
     * @param progname           Program name
     * @param version            Program version e.g. "1.3"
     * @param purpose1           what is this program for? line-1
     * @param purpose2           what is this program for? line-2. may be null, or "".
     * @param status             e.g. "unregistered shareware", "freeware", "commercial", "company confidential"
     * @param released           Date released e.g. "1999-12-31"
     * @param firstCopyrightYear e.g. 1996
     * @param masterSite         e.g. CONVERTER -- where to find most up to date ZIP
     * @noinspection SameParameterValue,WeakerAccess
     */
    public CMPAboutBox( final Frame parent,
                        final String progname,
                        final String version,
                        final String purpose1,
                        final String purpose2,
                        final String status,
                        final String released,
                        final int firstCopyrightYear,
                        final String masterSite )
        {
        this( parent,
                progname,
                version,
                purpose1,
                purpose2,
                status,
                released,
                firstCopyrightYear,
                "Roedy Green",
                masterSite );
        }

    /**
     * Create an about box when don't have parent
     *
     * @param progname           Program name
     * @param version            Program version e.g. "1.3"
     * @param purpose1           what is this program for? line-1
     * @param purpose2           what is this program for? line-2. may be null, or "".
     * @param status             e.g. "unregistered shareware", "freeware", "commercial", "company confidential"
     * @param released           Date released e.g. "1999/12/31"
     * @param firstCopyrightYear e.g. 1996-
     * @param author             e.g. "Roedy Green"
     * @param masterSite         e.g. CONVERTER -- where to find most up to date ZIP
     */
    public CMPAboutBox( final String progname,
                        final String version,
                        final String purpose1,
                        final String purpose2,
                        final String status,
                        final String released,
                        final int firstCopyrightYear,
                        final String author,
                        final String masterSite )
        {
        this( new Frame( progname + " " + version )
                /*
                * dummy parent, won't be
                * disposed!!
                */,
                progname,
                version,
                purpose1,
                purpose2,
                status,
                released,
                firstCopyrightYear,
                author,
                masterSite );
        }

    /**
     * Create an about box
     *
     * @param parent             frame for this about box.
     * @param progname           Program name
     * @param version            Program version e.g. "1.3"
     * @param purpose1           what is this program for? line-1
     * @param purpose2           what is this program for? line-2. may be null, or "".
     * @param status             e.g. "unregistered shareware", "freeware", "commercial", "company confidential"
     * @param released           Date released e.g. "1999-12-31"
     * @param firstCopyrightYear e.g. 1996
     * @param author             e.g. "Roedy Green"
     * @param masterSite         e.g. CONVERTER -- where to find most up to date ZIP
     * @noinspection WeakerAccess
     */
    public CMPAboutBox( final Frame parent,
                        final String progname,
                        final String version,
                        final String purpose1,
                        final String purpose2,
                        final String status,
                        final String released,
                        final int firstCopyrightYear,
                        final String author,
                        final String masterSite )
        {
        super( parent, progname + " " + version, false/* not modal */ );
        guts( progname,
                version,
                purpose1,
                purpose2,
                status,
                released,
                firstCopyrightYear,
                author,
                masterSite );
        }

    /**
     * bypass setBackground bug, by setting it over and over, every time addNotify gets called.
     */
    public void addNotify()
        {
        super.addNotify();
        setBackground( WHITE );
        }

    // -------------------------- OTHER METHODS --------------------------

    /**
     * Shutdown the about box
     */
    private void dismiss()
        {
        // close the about box
        this.setVisible( false );
        // tell AWT to discard all pointers to the Dialog box.
        this.dispose();
        }// end dismiss

    /**
     * common parts to all creation Guts of reating an an about box
     *
     * @param progname           Program name
     * @param version            Program version e.g. "1.3"
     * @param purpose1           what is this program for? line-1
     * @param purpose2           what is this program for? line-2. may be null, or "".
     * @param status             e.g. "unregistered shareware", "freeware", "commercial", "company confidential"
     * @param released           Date released e.g. "1999-12-31"
     * @param firstCopyrightYear 1996
     * @param author             e.g. "Roedy Green"
     * @param masterSite         e.g. CONVERTER -- where to find most up to date ZIP
     */
    private void guts( final String progname,
                       final String version,
                       final String purpose1,
                       final String purpose2,
                       final String status,
                       final String released,
                       final int firstCopyrightYear,
                       final String author,
                       final String masterSite )
        {
        // basic layout
        // 0 1
        // 0 ---------------progname version--------------------------------- 0
        //
        // 1 ---------------------purpose1------------------------------------ 1
        // 2 ---------------------purpose2------------------------------------ 2
        //
        // 3 ---------------------status-------------------------------------- 3
        // 4 --------------released: xxxxxxxxx-------------------------------- 4
        //
        // 5 copyright 2000 5
        // 6 Roedy Green 6
        // 7 Canadian Mind Products 7
        // 8 #101 - 2536 Wark Street 8
        // 9 Victoria, BC Canada V8T 4G8 phone:(250) 361-9093 9
        // 10 roedyg@mindprod.com http://mindprod.com/products#CONVERTER 10
        //
        // 11 (Dismiss) 11
        // 0 1

        // leave room for warning this frame belongs to Java applet.
        setSize( 500, 380 );
        setLocation( 0, 0 );
        setBackground( WHITE );
        GridBagLayout gridBagLayout;
        gridBagLayout = new GridBagLayout();
        GridBagConstraints gbc;

        setLayout( gridBagLayout );

        _prognameVersion =
                new Label( progname + " " + version + " build " + Build
                        .BUILD_NUMBER, Label.CENTER );
        _prognameVersion.setFont( TITLE_FONT );
        _prognameVersion.setForeground( TITLE_FOREGROUND );
        _prognameVersion.setBackground( WHITE );
        gbc = new GridBagConstraints();
        gbc.gridx = 0;
        gbc.gridy = 0;
        gbc.gridwidth = 2;
        gbc.fill = GridBagConstraints.NONE;
        gbc.anchor = GridBagConstraints.CENTER;
        gbc.insets = new Insets( 15, 10, 5, 10 );
        ( ( GridBagLayout ) getLayout() ).setConstraints( _prognameVersion, gbc );
        add( _prognameVersion );

        _purpose1 = new Label( purpose1, Label.CENTER );
        _purpose1.setFont( new Font( "Dialog", Font.ITALIC, 12 ) );
        _purpose1.setForeground( BLACK );
        _purpose1.setBackground( WHITE );
        gbc = new GridBagConstraints();
        gbc.gridx = 0;
        gbc.gridy = 1;
        gbc.gridwidth = 2;
        gbc.fill = GridBagConstraints.NONE;
        gbc.anchor = GridBagConstraints.CENTER;
        gbc.insets = new Insets( 5, 10, 0, 5 );
        ( ( GridBagLayout ) getLayout() ).setConstraints( _purpose1, gbc );
        add( _purpose1 );

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -