1.SWT:

  a.组成:①java.awt包:工具类——颜色、字体类等

      ②javax.swing包:容器类 与 组件 (java.awt包中容器类与组件的升级版,以J打头)

  b.总结:SWT = Swing + AWT

2.容器:

  a.首层容器:JWindow、JFrame、JDialoge、JApplet

  b.中间容器:Jpanel

  c.组件:

    ①标签——JLabel (注:JLabel也能做容器)

    ②文本框——JTextField

     密码框——JPasswordField

    ③按钮——JButton

    ④下拉列表——JComboBox<String>

    ⑤单选框——JRadioButton

    ⑥复选框——JRadioButton

    ⑦文本域——JTextArea

3.布局:

  a.分类:①边界布局管理器(麻将布局)——BorderLayout

      ②流布局管理器——FlowLayout

      ③网格布局管理器——GridLayout

      ④卡片布局管理器——CardLayout

  b.边界布局:

    ①特点:把整个容器划分为5个部分;东西南北中,南北要贯通,中间最大(不仅是中间的范围最大,权利也最大)

        当周边不存在的时候中间会占领周边,当中间不存在的时候周边不能占据中间

    ②使用:不是用来直接放组件的,而是用来放置子容器(中间容器)的

    ③注意:在默认的情况下,JFrame的内容面板就是边界布局

        直接add就是默认往中间放

this.contentP.add(this.btn1);        //往中间放
this.contentP.add(BorderLayout.NORTH, this.btn2); //往北面放

  c.流布局:

    ①特点:按从左往右,从上往下,由中间开始的方式以此排放组件

        组件的位置会随着容器大小的改变而改变

        组件大小要根据组件内容确定

    ②使用:流布局是用来放置组件的,而不是用来放中间容器的

        流布局最好只做单行布局

  d.网格布局:

    ①特点:按行列将整个容器划分为等大的区域

        放入的子容器的数目如果与设置的数目不等,优先保证行改变列

    ②使用:不是用来直接放组件的,而是用来放置子容器(中间容器)的

this.contentP.setLayout(new GridLayout(2,3));

  e.卡片布局:

    ①特点:容器中的卡片按照顺序按最上面到最下面的顺序存放,身上至少贴上一张卡片

        第一个被放入的卡片在最上面

        每张卡片放入的时候要给出别名

this.add("spring", this.sprP);

    ②使用:不是用来直接放组件的,而是用来放置子容器(中间容器)的

    ③翻页步骤:

//翻页步骤:1、首先得到被设置为卡片布局的那个容器
SeasonPanel sp = ButtonPanel.this.cardF.getSeaP();
//2、得到这个容器的布局管理器/
CardLayout card = (CardLayout)sp.getLayout();
//3、调用该布局管理器翻页
card.first(sp);

4.事件处理

  a.特点:①一个监听器,可以绑定多个事件源

      ②一个事件源,可以绑定多个监听器

      ③监听器有各自的监听事件类型

  b.步骤:①写好界面——事件源对象已有

      ②选择合适的监听器类型

      ③书写监听器实现类 (写好处理代码)

      ④产生监听器对象,和事件源对象进行绑定

5.监听器

  a.分类:ActionListener——点击监听器

      KeyListener——键盘监听器

      MouseListener——鼠标监听器

      MouseWheelListener——鼠标滑轮监听器

      WindowListener——窗口监听器

  b.最经典的监听器实现方法:

    ①匿名内部类的使用——在跟事件源对象绑定监听器对象的同时,实现监听器类

        this.redBtn.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
ColorFrame.this.contentP.setBackground(Color.RED);
ColorFrame.this.redBtn.setEnabled(false);
ColorFrame.this.greenBtn.setEnabled(true);
}
});

    ②特点:每个事件源对象拥有独立的监听器类,同时没有多的java文件。即满足单一,又没有增加文件数量

        操作外部容器类的任何组件或子容器不用传参

Java 之 GUI的更多相关文章

  1. 1.JAVA之GUI编程概述

          下列内容为本人看毕向东老师java视频教程学习笔记! JAVA GUI图形用户界面编程: Windows 操作系统提供两种操作方式:                             ...

  2. 2.JAVA之GUI编程布局

    布局管理器 容器中的组件排放方式,就是布局 常见的布局管理器: **************************************************** 1.FlowLayout(流式 ...

  3. 3.JAVA之GUI编程Frame窗口

    创建图形化界面思路: 1.创建frame窗体: 2.对窗体进行基本设置: 比如大小.位置.布局 3.定义组件: 4.将组件通过add方法添加到窗体中: 5.让窗体显示,通过setVisible(tur ...

  4. 4.JAVA之GUI编程事件监听机制

    事件监听机制的特点: 1.事件源 2.事件 3.监听器 4.事件处理 事件源:就是awt包或者swing包中的那些图形用户界面组件.(如:按钮) 事件:每一个事件源都有自己特点有的对应事件和共性事件. ...

  5. 5.JAVA之GUI编程窗体事件

    我们回顾下第三篇时的内容: 在3.JAVA之GUI编程Frame窗口中窗体是无法直接关闭的,想要关闭须进程管理器结束进程方式关掉. 现在我们就来解决下这个问题. ******************* ...

  6. 6.JAVA之GUI编程Action事件

    功能:单击一个按钮实现关闭窗口: import java.awt.*; import java.awt.event.*; public class StudyAction { // 定义该图形所需的组 ...

  7. 7.JAVA之GUI编程鼠标事件

    鼠标事件: 功能: 1.基本窗体功能实现 2.鼠标移动监听,当鼠标移动到按钮上时,触发打印事件. 3.按钮活动监听,当按钮活动时,触发打印事件. 4.按钮被单击时触发打印事件. 源码如下: impor ...

  8. 8.JAVA之GUI编程键盘码查询器

    程序使用说明: 1.本程序由于是java代码编写,所以运行需安装jdk并配置好环境变量. 2. 复制java代码到记事本内,另存为Keyboard_events.java: 3.复制批处理代码到记事本 ...

  9. 9.JAVA之GUI编程列出指定目录内容

    代码如下: /*列出指定目录内容*/ import java.awt.Button; import java.awt.FlowLayout; import java.awt.Frame; import ...

  10. 10.JAVA之GUI编程弹出对话框Dialog

    在上节基础上添加对话框显示错误信息. 代码如下: /*弹出对话框显示错误信息,对话框一般不单独出现,一般依赖于窗体.*/ /*练习-列出指定目录内容*/ import java.awt.Button; ...

随机推荐

  1. centos 7.0 编译安装php 7.0.3

    php下载页面 http://cn2.php.net/downloads.php 7.0.3多地区下载页面 http://cn2.php.net/get/php-7.0.3.tar.gz/from/a ...

  2. css zoom属性兼容ie,firefox,chrome

    jquery代码: $("body").css({ "zoom":"2", "transform":"scal ...

  3. Gulp基础

    1.什么是gulp? gulp是前端开发过程中对代码进行构建的工具,是自动化项目的构建利器. 2.为什么使用gulp? gulp不仅能对网站资源进行优化,而且在开发过程中很多重复的任务能够使用正确的工 ...

  4. 移动开发框架剖析(二) Hammer专业的手势控制

    浏览器底层并没有给元素提供类似,单击,双击,滑动,拖动这些直接可以用的控制接口,一切的手势动作都只能通过模拟出来.移动端浏览器唯一给我们提供的就只是mousedown -> mousemove ...

  5. runas/cpau/lsrunase使用小结(以管理员运行指定程序)

    企业环境中,为了安全起见一般都没有赋予域用户或者企业的PC客户端用户管理员权限. 但偶尔会有个别的程序一定需要管理员身份才能执行,如财务某些程序或专业的应用程序.那么如何不赋予用户管理员权限及密码但又 ...

  6. sql server 字符串转成日期格式

    在SQL Server数据库中,SQL Server日期时间格式转换字符串可以改变SQL Server日期和时间的格式,是每个SQL数据库用户都应该掌握的.本文我们主要就介绍一下SQL Server日 ...

  7. XSS(跨站脚本攻击)的最全总结

    从OWASP的官网意译过来,加上自己的理解,算是比较全面的介绍.有兴趣的可私下交流. XSS 跨站脚本攻击 ============================================== ...

  8. Thinkphp 第二篇:如何将一个外部项目导入到Thimkphp环境中

    一:到这篇博文的开头,假设我们的Xmapp环境已经搭建好了,并且成功的安装了Thinkphp的环境了. 1:Xmapp安装成功截图: 2:Thinkphp安装成功截图: 二:Thinkphp中各个文件 ...

  9. 【转】linux查看及修改文件权限以及相关

    linux查看及修改文件权限以及相关 查看文件权限的语句: 在终端输入: ls -l xxx.xxx (xxx.xxx是文件名) 那么就会出现相类似的信息,主要都是这些: -rw-rw-r-- 一共有 ...

  10. jdbc链接数据库的三种方式

    /** * jdbc连接数据库 * @author APPle * */ public class Demo1 { //连接数据库的URL private String url = "jdb ...