黑马程序员-------JavaGUI

来源:互联网 发布:支持mac的游戏 编辑:程序博客网 时间:2024/05/29 14:53

------------- java培训android培训、java博客、java学习型技术博客、期待与您交流! --------------

Awt和Swing

  • java.Awt:Abstract Window ToolKit (抽象窗口工具包),需要调用本地系统方法实现功能。属重量级控件。
  • javax.Swing:在AWT的基础上,建立的一套图形界面系统,其中提供了更多的组件,而且完全由Java实现。增强了移植性,属轻量级控件。

继承关系图

 

 布局管理器

 常见的布局管理器:

  • FlowLayout(流式布局管理器)

从左到右的顺序排列。

Panel默认的布局管理器。

  • BorderLayout(边界布局管理器)

东,南,西,北,中

Frame默认的布局管理器。

  • GridLayout(网格布局管理器)

规则的矩阵

  • CardLayout(卡片布局管理器)

选项卡

  • GridBagLayout(网格包布局管理器)

非规则的矩阵

 

 简单的窗体创建过程:

Frame  f = new Frame(“my window”);f.setLayout(new FlowLayout());f.setSize(500,400);//设置窗体大小f.setLocation(300,200);//设置窗体出现在屏幕的位置f.setVisible(true);

 

import java.awt.*;import java.awt.event.*;class  FrameDemo{//定义该图形中所需的组件的引用。private Frame f;private Button but;FrameDemo(){init();}public void init(){f = new Frame("my frame");//对frame进行基本设置。f.setBounds(300,100,600,500);f.setLayout(new FlowLayout());but = new Button("my button");//将组件添加到frame中f.add(but);//加载一下窗体上事件。myEvent();//显示窗体;f.setVisible(true);}private void myEvent(){f.addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent e){System.exit(0);}});//让按钮具备退出程序的功能/*按钮就是事件源。那么选择哪个监听器呢?通过关闭窗体示例了解到,想要知道哪个组件具备什么样的特有监听器。需要查看该组件对象的功能。 通过查阅button的描述。发现按钮支持一个特有监听addActionListener。*/but.addActionListener(new ActionListener(){private int count = 1;public void actionPerformed(ActionEvent e){//System.out.println("退出,按钮干的");//System.exit(0);//f.add(new Button("Button-"+(count++)));//f.setVisible(true);//f.validate();//System.out.println(e.getSource());Button b = (Button)e.getSource();Frame f1 = (Frame)b.getParent();f1.add(new Button("button-"+count++));f1.validate();}});}public static void main(String[] args) {new FrameDemo();}}

 事件监听机制流程图

 

 

 菜单继承体系

 

import java.awt.*;import java.awt.event.*;class MyMenuDemo {private Frame f;private MenuBar mb;private Menu m,subMenu;private MenuItem closeItem,subItem;MyMenuDemo(){init();}public void init(){f = new Frame("my window");f.setBounds(300,100,500,600);f.setLayout(new FlowLayout());mb = new MenuBar();m = new Menu("文件");subMenu = new Menu("子菜单");subItem = new MenuItem("子条目");closeItem = new MenuItem("退出");subMenu.add(subItem);m.add(subMenu);m.add(closeItem);mb.add(m);f.setMenuBar(mb);myEvent();f.setVisible(true);}private void myEvent(){closeItem.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){System.exit(0);}});f.addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent e){System.exit(0);}});}public static void main(String[] args) {new MyMenuDemo();}}

 

------------- java培训android培训、java博客、java学习型技术博客、期待与您交流! --------------

 

 

原创粉丝点击