黑马程序员_源自梦想 GUI
2013-10-28 20:28
197 查看
------- android培训、java培训、期待与您交流!
---------
两个很重要的包
java.Awt:(Abstract Window ToolKit抽象窗口工具包)
需要调用本地系统方法实现功能.属重量级控件,跨平台性不是很好.
javax.Swing: 在AWT的基础上,建立的一套图形化几面系统.
构成:
Component(构件,组件)
|--Container(容器,特殊的子类)
|--Window(窗口)
|--Frame(框架,窗体)
|--Dialog(对话框)
|--Panel(面板)
//下面与Container同级,但是不能添加组件
|--Button(按钮)
|--Label(标签,作用在于封装文字)
|--Checkbox(复选框)
从左到右的顺序排列
|-- BorderLayout(边界布局管理器)
东,南,西,北,中(默认居中 添加新组件就会覆盖)
|--GridLayout(网格布局管理器) 计算器(规则的矩阵)
|--CardLayout(卡片布局管理器) 选项卡(右键 -->属性)
|--GridBagLayout(网格包布局管理器) 非规则布局
|--container add(Component comp,int index) 可以添加索引
将指定的组件添加到此容器的给定位置上
container能够添加组件 那些组件都是对象,它把对象都添加到窗体当中,代表了 (它内部其实封装了一个集合),它把这些组件对象都添加到集合当中,都带着角标。所以你可以在其任意的位置上添加元素.
|--Frame()构造一个最初不可见的Frame新实例()
通过5步来完成,图形化界面的制作
1.创建frame窗体
2.对窗体进行基本设置
比如大小,位置,布局
3.定义组件
4.将组件通过窗体的add方法添加到窗体中。
5.让窗体显示,通过setVisible(true).
1,事件源
2,事件
3,监听器
4,事件处理方式
事件监听机制的特点:
事件源:就是awt包或者swing包中的那些图形界面组件
事件:每一个事件源都有自己特有的对应事件和共性事件.
监听器:可以触发某一个事件的动作(不止一个动作)都已经封装到了监听器中.
|--Menu菜单
|--MenuItem菜单项
---------
GUI
全称:Graphical User Interface(图形用户接口)两个很重要的包
java.Awt:(Abstract Window ToolKit抽象窗口工具包)
需要调用本地系统方法实现功能.属重量级控件,跨平台性不是很好.
javax.Swing: 在AWT的基础上,建立的一套图形化几面系统.
构成:
Component(构件,组件)
|--Container(容器,特殊的子类)
|--Window(窗口)
|--Frame(框架,窗体)
|--Dialog(对话框)
|--Panel(面板)
//下面与Container同级,但是不能添加组件
|--Button(按钮)
|--Label(标签,作用在于封装文字)
|--Checkbox(复选框)
布局管理器
|-- FlowLayout(流式布局管理器)从左到右的顺序排列
|-- BorderLayout(边界布局管理器)
东,南,西,北,中(默认居中 添加新组件就会覆盖)
|--GridLayout(网格布局管理器) 计算器(规则的矩阵)
|--CardLayout(卡片布局管理器) 选项卡(右键 -->属性)
|--GridBagLayout(网格包布局管理器) 非规则布局
Frame
|--component是一个具有图形表示能力的对象,可在屏幕上显示,并可与用户进行交互。|--container add(Component comp,int index) 可以添加索引
将指定的组件添加到此容器的给定位置上
container能够添加组件 那些组件都是对象,它把对象都添加到窗体当中,代表了 (它内部其实封装了一个集合),它把这些组件对象都添加到集合当中,都带着角标。所以你可以在其任意的位置上添加元素.
|--Frame()构造一个最初不可见的Frame新实例()
通过5步来完成,图形化界面的制作
1.创建frame窗体
2.对窗体进行基本设置
比如大小,位置,布局
3.定义组件
4.将组件通过窗体的add方法添加到窗体中。
5.让窗体显示,通过setVisible(true).
public class AwtDemo{ public static void main(String[] args) { Frame f = new Frame("my awt"); f.setSize(500,100); //设置长宽 500,100 f.setLocation(300,,200);//设置本地位置(top,left) 300,200 f.setVisible(true); //显示窗体 f.setLayout(new FolwLayout()); // 创建流式布局管理器 Button b = new Button("我是一个按钮"); // f.add(b);//用容器的add方法将这个按钮加进来 } }
事件监听机制
事件监听机制的组成:1,事件源
2,事件
3,监听器
4,事件处理方式
事件监听机制的特点:
事件源:就是awt包或者swing包中的那些图形界面组件
事件:每一个事件源都有自己特有的对应事件和共性事件.
监听器:可以触发某一个事件的动作(不止一个动作)都已经封装到了监听器中.
import java.awt.*; import java.awt.event.*; class AwtDemo { public static void main(String[] args) { Frame f = new Frame("my awt"); //设置窗体大小 f.setSize(500,400); //设备位置位置,距左上方 f.setLocation(300,20); //设置布局管理 f.setLayout(new FlowLayout()); //按钮 Button b = new Button("我是一个按钮"); //将按钮添加到窗体当中 f.add(b); //注册监听器 f.addWindowListener(new WindowAdapter() { //关闭窗口 public void windowClosing(WindowEvent e) { System.out.println("关闭窗口"); System.exit(0); } //窗体前置 public void windowActivated(WindowEvent e) { System.out.println("被触发了.."); } //窗体打开 public void windowOpened(WindowEvent e) { System.out.println("打开窗体"); } }); //显示窗体 f.setVisible(true); } } //应为WindowListener的子类windowASdapter已经实现了WindowListener接口. //并覆盖了其中的所有方法.那么我只需要继承自WindowAdapter覆盖我需要的方法即可 class MyWin extends WindowAdapter { public void windowClosing(WindowEvent e) { System.out.println("window closing"); System.exit(0); } }
//键盘事件 tf.addKeyListener(new KeyAdapter() { public void keyPressed(KeyEvent e) { int code = e.getKeyCode(); if(!(code>=KeyEvent.VK_0 && code<= KeyEvent.VK_9)) { e.consume();//使用此事件,以便不会按照默认的方式由产生此事件的源代码来处理此事件。 System.out.println(code+"您输入的是非法的"); } } }); //给but添加一个监听 but.addKeyListener(new KeyAdapter() { public void keyPressed(KeyEvent e) { //组合按键,ctrl+enter if(e.isControlDown()&&e.getKeyCode()==KeyEvent.VK_ENTER) System.exit(0); //如果按键是esc就退出 //if(e.getKeyCode()==KeyEvent.VK_ESCAPE) // System.exit(0); //KeyEvent.getKeyText(e.getKeyCode())打印输入内容 //System.out.println(KeyEvent.getKeyText(e.getKeyCode())+"...."+e.getKeyCode()); } }); //鼠标事件 but.addMouseListener(new MouseAdapter() { int count = 1; int clickcount = 1; //鼠标进入事件 public void mouseEntered(MouseEvent e) { System.out.println("鼠标进入该按钮"+count++); } public void mouseClicked(MouseEvent e) { //getClickCount()获取鼠标连击次数 if(e.getClickCount()==2) System.out.println("鼠标双击事件"+clickcount++); } }); //TextArea列出指定路径目录和文件名 but.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { /* String text = tf.getText(); //System.out.println(text); ta.setText(text); tf.setText("");//清空内容 */ String dirPath = tf.getText(); File dir = new File(dirPath);//封装成对象 if(dir.exists() && dir.isDirectory())//dir存在,并且是目录 { ta.setText("");//清空上一次查询 String[] names = dir.list(); for(String name : names) { //ta.setText(name+"\r\n"); ta.append(name+"\r\n"); } } } });
菜单
|--MenuBar菜单条|--Menu菜单
|--MenuItem菜单项
public class MyMenuDemo { private Frame f; private MenuBar mb;// 菜单栏 private Menu m, subMenu;// 菜单 private MenuItem closeItem, subItem;// 子菜单 MyMenuDemo() { init(); } public void init() { f = new Frame(); f.setBounds(100, 100, 500, 600); f.setLayout(new FlowLayout()); mb = new MenuBar(); m = new Menu("文件"); closeItem = new MenuItem("退出"); subItem = new MenuItem("子条目"); subMenu = new Menu("子菜单"); f.setMenuBar(mb);// 添加菜单 mb.add(m);// 添加"文件" m.add(subMenu);// 文件下面添加子菜单 subMenu.add(subItem);// 子条目 m.add(closeItem); f.setVisible(true); } public static void main(String[] args) { new MyMenuDemo(); } }
相关文章推荐
- 黑马程序员_源自梦想 Collection、Map、Collections
- 黑马程序员_源自梦想 IO流
- 黑马程序员_源自梦想 -->Dos及java常用命令
- 黑马程序员_源自梦想 三大特征:封装、继承、多态
- 黑马程序员_源自梦想 网络编程
- 黑马程序员_源自梦想 java基础知识注意点
- 黑马程序员_源自梦想 内部类
- 黑马程序员_源自梦想 数组、for、while、排序
- 黑马程序员_源自梦想 高新技术
- 黑马程序员_源自梦想 java --类、对象
- 黑马程序员_源自梦想 交通灯管理系统
- 黑马程序员_源自梦想 银行业务调度系统
- 黑马程序员_源自梦想 Exception--异常
- 黑马程序员_源自梦想 String、StringBuffer、StringBuilder
- 黑马程序员_源自梦想 线程
- 黑马程序员_源自梦想 静态、工具类、单例设计模式
- 黑马程序员_源自梦想 线程2
- 黑马程序员-图形用户界面GUI -22天(1)
- 黑马程序员 java学习笔记 Day6:GUI
- 黑马程序员——GUI 编程学习