黑马程序员_javaGUI编程

来源:互联网 发布:mysql 模糊查询 编辑:程序博客网 时间:2024/05/18 03:26

------- android培训、java培训、期待与您交流! ----------

GUI

概念:

Graphical User Interface(图形用户接口)。用图形的方式,来显示计算机操作的界面,这样更方便更直观。

CLICommand line User Interface (命令行用户接口)就是常见的Dos命令行操作。需要记忆一些常用的命令,操作不直观。

awtswing包的概述

java.awtAbstract Window ToolKit (抽象窗口工具包),需要调用本地系统方法实现功能。属重量级控件。

javax.swing:在AWT的基础上,建立的一套图形界面系统,其中提供了更多的组件,而且完全由Java实现。增强了移植性,属轻量级控件。


Frame窗体的创建

Frameawt包子类,带有边框和标题的顶层窗口。Frame构造方法带有String类型参数可以设置窗体标题。

setVisible(true) 显示窗体

setSize(int width,int heigth) 设置大小,像素

setLocation(int x,int y)设置位置,像素

setBounds(int x,int y,int width,int heigth)设置大小和位置

setBackground(Color c)设置窗体颜色

代码如下:

import java.awt.*;public class FrameDemo {public static void main(String[] args) {Frame frm = new Frame("这是我的第一个窗体"); frm.setSize(500, 450); frm.setLocation(200, 100);frm.setBackground(new Color(202,232,207));int w = Toolkit.getDefaultToolkit().getScreenSize().width;int h = Toolkit.getDefaultToolkit().getScreenSize().height;frm.setBounds((w-500)/2, (h-400)/2, 500, 400);frm.setVisible(true);}}

事件监听机制

事件监听机制是软件和用户交互的一种机制,用户可以通过鼠标和键盘操作软件。

事件源

  在软件中,用户可以使用鼠标或者键盘操作的一切内容,都属于事件源,比如按钮,文本框,窗体等等。

事件

  事件指的是用户操作事件源,例如鼠标事件,键盘事件和窗体事件。

监听器

  注册在事件源上的一种监听机制,等着用户操作这个事件源,一旦用户有动作,立刻会被监听器捕获,根据用户对事件源的操作方式,调用不同的处理方式。

处理方式

  定义的方法,监听器会根据用户的操作,选择调用处理的方法。

案例:窗体事件监听器

我们如果要对窗口时间进行监听就需要实现WindowListener接口,定义实现类重写它的全部抽象方法,而如果我们只用了接口中的一个方法,代码的利用率就很低,因此我们需要定义一个适配器类,重写接口全部方法,而我们只需要定义子类继承适配器类,这样我们用到某个方法就直接重写它就可以了,提高了代码的利用率。代码如下:

import java.awt.*;import java.awt.event.*;public class FrameDemo {public static void main(String[] args) {Frame frm = new Frame("实现窗体事件关闭效果");frm.setBackground(new Color(202, 232, 207));int w = Toolkit.getDefaultToolkit().getScreenSize().width;int h = Toolkit.getDefaultToolkit().getScreenSize().height;frm.setBounds((w - 500) / 2, (h - 400) / 2, 500, 400);frm.setVisible(true);// 添加窗体事件监听器frm.addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent e){System.exit(0);}});}}

除了窗口事件监听器,还有鼠标事件监听器、键盘事件监听器等,用法大致相同。

 

进阶练习:

实现菜单,创建一个菜单,其中具有菜单栏,菜单和菜单条目。

代码如下:

import java.awt.*;import java.awt.event.*;public class MenuDemo {public static void main(String[] args) {Frame frm = new Frame("实现菜单");frm.setBackground(new Color(202, 232, 207));int w = Toolkit.getDefaultToolkit().getScreenSize().width;int h = Toolkit.getDefaultToolkit().getScreenSize().height;frm.setBounds((w - 500) / 2, (h - 400) / 2, 500, 400);frm.setVisible(true);frm.setLayout(null);//创建菜单栏对象MenuBarMenuBar bar = new MenuBar();//窗体方法setMenuBar,添加菜单栏frm.setMenuBar(bar);//创建2个Menu对象,一个是文件,一个是编辑Menu file = new Menu("文件");Menu edit = new Menu("编辑");//菜单栏的方法add添加菜单bar.add(file);bar.add(edit);//创建文件菜单下的菜单条目MenuItem,打开保存MenuItem open = new MenuItem("打开");MenuItem save = new MenuItem("保存!!!!");//创建编辑菜单下的菜单条目,复制MenuItem copy = new MenuItem("复制");//调用菜单Menu方法add添加菜单条目file.add(open);file.add(save);edit.add(copy);//实现子菜单,在文件菜单下,添加子菜单新建,新建子菜单里面有多个菜单条目//c/c++ perl java//创建Menu菜单,新建Menu newMenu = new Menu("新建");file.add(newMenu);MenuItem c = new MenuItem("c/c++");MenuItem perl = new MenuItem("perl");MenuItem java = new MenuItem("java");newMenu.add(c);newMenu.add(perl);newMenu.add(java);//对保存菜单添加事件监听器,活动事件save.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {System.exit(0);}});}}


0 0
原创粉丝点击