用用frame

来源:互联网 发布:星际争霸2mac版 编辑:程序博客网 时间:2024/04/28 10:16
 /**
 * Copyright (c) 1996-2004 Borland Software Corporation.  All Rights Reserved.
 *
 * This SOURCE CODE FILE, which has been provided by Borland Software as part
 * of a Borland Software product for use ONLY by licensed users of the product,
 * includes CONFIDENTIAL and PROPRIETARY information of Borland Software.
 *
 * USE OF THIS SOFTWARE IS GOVERNED BY THE TERMS AND CONDITIONS
 * OF THE LICENSE STATEMENT AND LIMITED WARRANTY FURNISHED WITH
 * THE PRODUCT.
 *
 * IN PARTICULAR, YOU WILL INDEMNIFY AND HOLD BORLAND SOFTWARE, ITS
 * RELATED COMPANIES AND ITS SUPPLIERS, HARMLESS FROM AND AGAINST ANY
 * CLAIMS OR LIABILITIES ARISING OUT OF THE USE, REPRODUCTION, OR
 * DISTRIBUTION OF YOUR PROGRAMS, INCLUDING ANY CLAIMS OR LIABILITIES
 * ARISING OUT OF OR RESULTING FROM THE USE, MODIFICATION, OR
 * DISTRIBUTION OF PROGRAMS OR FILES CREATED FROM, BASED ON, AND/OR
 * DERIVED FROM THIS SOURCE CODE FILE.
 */
//------------------------------------------------------------------------------
// Copyright (c) 1996-2004 Borland Software Corporation.  All Rights Reserved.
//------------------------------------------------------------------------------
 
package com.borland.samples.welcome;
 
import java.awt.*;//java.awt.*一般是画图的类
import javax.swing.UIManager;//用户管理页面,但我一般没有过,但用过swing,javax包下的
 
public class WelcomeApp {//一个类,一个开始的例子应用程序
  boolean packFrame = false;
 
  /**
   * Construct the application
   */
  public WelcomeApp() {//这里是构造函数了,一般应用程序启动最开始的地方就是从这里开始
    WelcomeFrame frame = new WelcomeFrame();//new 一个对象
 
    //Pack frames that have useful preferred size info, e.g. from their layout
    //Validate frames that have preset sizes
    if (packFrame)
      frame.pack();
    else
      frame.validate();//调用frame中的校验方法validate()
 
    // Center the frame
    Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
    Dimension frameSize = frame.getSize();
    if (frameSize.height > screenSize.height)
      frameSize.height = screenSize.height;
    if (frameSize.width > screenSize.width)
      frameSize.width = screenSize.width;
    frame.setLocation((screenSize.width - frameSize.width) / 2 , (screenSize.height - frameSize.height) / 2);
 
    frame.setVisible(true);
  }
 
  /**
   * Main method
   *
   * @param args String[]
   */
  static public void main(String[] args) {
    try {
      UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
    }
    catch(Exception e) {
      e.printStackTrace();
    }
    new WelcomeApp();
  }
}
 
/**
 * Copyright (c) 1996-2004 Borland Software Corporation.  All Rights Reserved.
 *
 * This SOURCE CODE FILE, which has been provided by Borland Software as part
 * of a Borland Software product for use ONLY by licensed users of the product,
 * includes CONFIDENTIAL and PROPRIETARY information of Borland Software.
 *
 * USE OF THIS SOFTWARE IS GOVERNED BY THE TERMS AND CONDITIONS
 * OF THE LICENSE STATEMENT AND LIMITED WARRANTY FURNISHED WITH
 * THE PRODUCT.
 *
 * IN PARTICULAR, YOU WILL INDEMNIFY AND HOLD BORLAND SOFTWARE, ITS
 * RELATED COMPANIES AND ITS SUPPLIERS, HARMLESS FROM AND AGAINST ANY
 * CLAIMS OR LIABILITIES ARISING OUT OF THE USE, REPRODUCTION, OR
 * DISTRIBUTION OF YOUR PROGRAMS, INCLUDING ANY CLAIMS OR LIABILITIES
 * ARISING OUT OF OR RESULTING FROM THE USE, MODIFICATION, OR
 * DISTRIBUTION OF PROGRAMS OR FILES CREATED FROM, BASED ON, AND/OR
 * DERIVED FROM THIS SOURCE CODE FILE.
 */
//------------------------------------------------------------------------------
// Copyright (c) 1996-2004 Borland Software Corporation.  All Rights Reserved.
//------------------------------------------------------------------------------
 
package com.borland.samples.welcome;
 
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
 
public class WelcomeFrame extends JFrame {//继承JFrame
  JPanel contentPane;//面版
  BorderLayout borderLayout1 = new BorderLayout();//布局
 
  JMenuBar jMenuBar1 = new JMenuBar();//设置菜单栏1
  JMenuBar jMenuBar2 = new JMenuBar();//设置菜单栏2
 
  JMenu jMenuFile = new JMenu();//设置菜单栏里的菜单选项的,关于File
  JMenuItem jMenuFileExit = new JMenuItem();
 
  JMenu jMenuHelp = new JMenu();//设置菜单栏里的菜单选项的,关于Help
  JMenuItem jMenuHelpAbout = new JMenuItem();
 
  JMenu jMenuEdit = new JMenu();//设置菜单栏里的菜单选项的,关于Edit
  JMenuItem jMenuEditExit = new JMenuItem();
  /**
   * Construct the frame
   */
  public WelcomeFrame() {
    enableEvents(AWTEvent.WINDOW_EVENT_MASK);
    try {
      System.out.println("打印的第1句话--->我的程序来到这里,这里是WelcomeFrame类的构造方法里面");
      jbInit();//这是什么方法?此方法是调用绘画图的函数,在此方法里完成所有的绘画操作。
    }
    catch (Exception e) {
      e.printStackTrace();
    }
  }
 
  /**
   * Component initialization
   *
   * @throws Exception exception
   */
  private void jbInit() throws Exception {
 
    //第1步--->从java Frame中得到面版
    contentPane = (JPanel) this.getContentPane();
    //第2步--->设置布局
    contentPane.setLayout(borderLayout1);
    //第3步--->设置标题
    this.setTitle("Welcome to JBuilder For Gui Yi Ying");
    //第4步--->设置菜单栏
    this.setJMenuBar(jMenuBar1);
    this.setJMenuBar(jMenuBar2);
    //第5步--->设置整个窗口的长和宽,return 400,300
    this.setSize(new Dimension(600, 500));
    //第6步--->框架打好了,可以往里面设置按扭了
    /*********************文件选项按扭**************************/
    jMenuFile.setText("文件");//设置菜单选项的,可以识别中文的,return File
    jMenuFileExit.setText("退出");//这里是设置菜单选项中的一项既子项,是菜单选项按扭中的退出按扭return Exit
    //以下是关于文件按扭菜单选项的监听事件
    /**
     * 事件帮定中有一个方法是1。addActionListener()在此方法的参数里传的是一个内部类,此内部类是new出来的一个对象
     * 那这个对象的方法是2。actionPerformed(ActionEvent e){}可以在此内部类自带的饿方法里写作出处理的3。方法
     * 当然在真正的处理方法里作出的是我们来给我们帮定的对象处理的结果。
     *
     */
    jMenuFileExit.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(ActionEvent e) {
        jMenuFileExit_actionPerformed(e);
      }
    });
    jMenuFile.add(jMenuFileExit);
     /*********************帮助选项按扭**************************/
    jMenuHelp.setText("帮助");//return Help
    jMenuHelpAbout.setText("关于");//return About
    //以下是帮助按扭菜单选项的监听事件
    jMenuHelpAbout.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(ActionEvent e) {
        jMenuHelpAbout_actionPerformed(e);
      }
    });
    jMenuHelp.add(jMenuHelpAbout);
    /*********************编辑选项按扭**************************/
    jMenuEdit.setText("Edit");
    jMenuEditExit.setText("Exit");
    jMenuEditExit.addActionListener(new java.awt.event.ActionListener(){
      public void actionPerformed(ActionEvent e) {
        jMenuEditExit_actionPerformed(e);
      }
 
    });
    jMenuEdit.add(jMenuEditExit);
    //最后要记得把所有的按扭菜单选项选进到整个菜单工具栏里
    jMenuBar1.add(jMenuFile);
    jMenuBar1.add(jMenuHelp);
 
    jMenuBar2.add(jMenuEdit);
 
  }
 
  /**
   * Overridden so we can exit when window is closed
   *
   * @param e WindowEvent
   */
  //是对退出按扭做出的。。
  /**
   *是对WindowEvent的处理由processWindowEvent(WindowEvent e)只要传一个Window事件给这个processWindowEvent
   * 它就会调用超父类的processWindowEvent(e),它来判断是否你传的事件的Id和系统Window事件里的相应的常量属性值相对应
   * 这些属性值,比如WINDOW_CLOSING就代表是关闭WINDOW的意思,关闭后,记得要调用系统函数,让系统退出,否则就???
   *
   */
  protected void processWindowEvent(WindowEvent e) {
    super.processWindowEvent(e);
    if (e.getID() == WindowEvent.WINDOW_CLOSING) {
      System.exit(0);
    }
  }
 
  /**
   * File | Exit action performed
   *
   * @param e ActionEvent
   *
   * 对象(文件 | 退出 )帮定的事件中的方法对对象的处理结果
   */
  public void jMenuFileExit_actionPerformed(ActionEvent e) {
    System.exit(0);
  }
 
  /**
   * Help | About action performed
   *
   * @param e ActionEvent
   */
  public void jMenuHelpAbout_actionPerformed(ActionEvent e) {
    /*没做什么反映,你可以在这里写一写对你帮定的对象的处理结果 ,当然可以像这样默认不关,什么都不做,也代表是一
        处理方式*/
    //如果触发到此事件就会打印出一段话....
    System.out.println("打印的第2句话--->当触发帮定到“关于”按扭的事件时,此句就会在后台打印出来");//Ok,测试成功!
  }
  /**
   * Edit | Exit action performed
   *
   * @param e ActionEvent
   */
  public void jMenuEditExit_actionPerformed(ActionEvent e){
    System.exit(0);
  }
}
原创粉丝点击