java Swing

图形用户界面(GUI : Graphics  User   Interface)

窗口

  JFrame常用方法

JFrame()创建一个无标题的窗口。

JFrame(String s)创建标题为s的窗口。

public voidsetBounds(int a,int b,int width,int height)设置窗口的初始位置是(a,b),即距屏幕左面a个像素,距屏幕上方b个像素,窗口的宽是width,高是height。

public void setSize(int width,int height)设置窗口的大小。

public void setLocation(int x,int y)设置窗口的位置,默认位置是(0,0)。    

public void setVisible(boolean b)设置窗口是否可见,窗口默认是不可见的。

public voidsetResizable(boolean b)设置窗口是否可调整大小,默认可调整大小。

public voiddispose()撤销当前窗口,并释放当前窗口所使用的资源。
    
publicvoid setExtendedState(int state)设置窗口的扩展状态,其中参数state取JFrame类中的下列类常量 MAXIMIZED_HORIZ (水平方向最大化) MAXIMIZED_VERT (垂直方向最大化) MAXIMIZED_BOTH (水平、垂直方向都最大化)。
  
publicvoid setDefaultCloseOperation(int operation)该方法用来设置单击窗体右上角的关闭图标后,程序会做出怎样的处理, 其中的参数operation取JFrame类中的下列int型static常量,程序根据参数operation取值做出不同的处理: 
   
DO_NOTHING_ON_CLOSE(什么也不做),HIDE_ON_CLOSE (隐藏当前窗口),DISPOSE_ON_CLOSE (隐藏当前窗口,并释放窗体占有的其他资源),EXIT_ON_CLOSE (结束窗口所在的应用程序)。

  菜单条,菜单,菜单项

/*
*菜单条
*/ setJMenuBar(JMenubar bar);
菜单:
JComponent类的子类JMenu负责创建菜单,即JMenu的一个实例就是一个菜单 菜单项:
JComponent类的子类JMenuItem负责创建菜单项,即JMenuItem的一个实例就是一个菜单项 嵌入子菜单:
JMenu是JMenuItem的子类,因此菜单本身也是一个菜单项,把一个菜单看做菜单项添加到某个菜单中时,称为菜单的子菜单 菜单上的图标:
Icon icon=new ImageIcon(“a.gif”);

常用组件及部件

  常用组件

JTextField:文本框
JTextArea:文本区
JButton:按钮
JLable:标签
JCheckBox:复选框
JRadioButton:单选框
JComboBox:下拉列表
JPasswordFiled:密码框

  常用容器

/*

JCpompoent是Container的子类,因此JComponent子类创建的组件也都是容器;中间容器必须添加到底层容器才能发挥作用

*/
1.JPanel面板
2.JtabbedPane选项卡窗口
add(String text,Component c);//方法将组件c添加到JtabbedPane容器中
public JTabbedPane(int tabPlacement);
3.滚动窗口:
JScrollPane scroll=new JScrollPane(new JTextArea()) 4. 拆分窗格JSplitPane
JSplitPane(int a,Component b,Component c)
JSplitPane(int a,boolean b,Component c,Component d) 5.JLayeredPane分层窗格
add(Jcomponent com,int layer);

  常用布局

setLayout(布局对象);
FlowLayout布局:
FlowLayout();
botton.setPreferredSize(new Dimension(20,20))
BorderLayout布局
东西南北中布局
con.add(b,BorderLayout.CENTER);
CardLayout布局:

CardLayout  card=new   CardLayout();
GridLayout布局

null布局

            p.setLayout(null);

BoxLayout布局:

处理事件

  事件处理模式

事件源:
能够产生事件的对象都可以称为事件源,文本框,按钮,下拉框。也就是说,事件源必须是一个对象。而且这个对象必须是java认为可以发生事件的对象 监听器:
需要一个对象对事件源进行监视,以便发生的事件做出处理,事件源通过调用相应的方法,将某个对象注册为自己的监听器,例如文本框,这个方法 addActionListener(监听器);
处理事件的接口:
监视器负责处理事件源发生的事件。监视器是一个对象。为了处理事件源的发生的事件,监视器这个对象会自动调用一个方法来处理,(对象只有调用方法才能产生行为)

  ActionEvent事件

ActionEvent事件源:
文本框,按钮,菜单栏,密码框,和单选框按钮都可以触发ActionEvent事件,即都可以成为ActionEvent事件的事件源。

  ItemEvent事件

  焦点事件

  键盘事件

  窗口事件

  匿名类实例或窗口做监听器

使用mvc

对话框

  消息对话框

  输入对话框

  确认对话框

  颜色对话框

  自定义对话框

树组件与表格组件

  树组件

  表格组件

按钮绑定到键盘

打印组件

发布GUI程序

Java基础知识笔记第九章:组件及事件处理的更多相关文章

  1. Java基础知识笔记第二章:基本数据类型与数组

    标识符和关键字 标识符: 1:字母,数字,下划线,美元符号 2.不能以数字开头 3.标识符不能是:true   false   null(尽管true   false   null不是java的关键字 ...

  2. Java基础知识笔记第一章:入门

    java的地位: java具有面向对象,与平台无关,安全,稳定和多线程等优良特性,是目前软件设计中优秀的编程语言. java的特点: 1.简单 2.面向对象 3.平台无关 jre(java runti ...

  3. java基础知识-笔记整理

    1.查看已安装jdk文件路径 CMD输入java -verbose.   2.java学习提升路线 java学习视屏地址: http://www.icoolxue.com/album/show/38 ...

  4. Java基础知识笔记第七章:内部类和异常类

    内部类 /* *Java支持在一个类中定义另一个类,这样的类称为内部类,而包含内部类的类称为内部类的外嵌类 */ 重要关系: /* *1.内部类的外嵌类在内部类中仍然有效,内部类的方法也可以外嵌类的方 ...

  5. Java基础知识笔记第六章:接口

    接口 /* 使用关键字interface来定义一个接口.接口的定义和类的定义很相似,分为接口声明和接口体 */ interface Printable{ final int max=100; void ...

  6. Java基础知识笔记第四章:类和对象

      编程语言的几个发展阶段 面向机器语言 面向过程语言 面向对象语言:封装.继承.多态 类 类声明 class Person{ ....... } class 植物{ ....... } 类体 类使用 ...

  7. Java基础知识笔记第三章:运算符表达式语句

    算术运算符与表达式 操作符 描述 例子 + 加法 - 相加运算符两侧的值 A + B 等于 30 - 减法 - 左操作数减去右操作数 A – B 等于 -10 * 乘法 - 相乘操作符两侧的值 A * ...

  8. Java基础知识笔记第五章:子类与继承

    子类与父类 子类 class 子类名 extends 父类名{ ....... } 类的树形结构 子类的继承性 子类和父类在同一包中的继承性 子类继承了父类不是private的成员属性和成员方法   ...

  9. Java基础知识笔记(八:集合类)

    目录 1  集合类简介  2  List介绍及简单使用 2.1  LinkedList介绍及简单使用 2.2  ArrayList介绍及简单使用 2.3  Vector介绍及简单使用 2.3.1  S ...

随机推荐

  1. linux使用tree将目录结构写进txt

    比如把caffe的二级目录结构写进txt: tree -L > /home/wmz/treecaffe.txt 则会在/home/wmz/目录下生成一个名为treecaffe.txt的文件,文件 ...

  2. 关于使用阿里云MAVEN镜像仓库

    由于国内的某些不可明确的原因 国内连接google的时候十分慢,使得看github上的项目十分慢,这里我们可以修改build.gradle下的文件来使用阿里云仓库同步 会更快: // Top-leve ...

  3. 【原】docker基础(一)

    1.架构 2.说明 Docker daemon( Docker守护进程):Docker daemon是一个运行在宿主机( DOCKER-HOST)的后台进程.可通过 Docker客户端与之通信. Cl ...

  4. 【HTTP与HTTPS的区别】

    目录 一.HTTP和HTTPS的基本概念 二.HTTP与HTTPS有何区别 三.HTTP与HTTPS的工作原理 四.HTTPS的优缺点 五.HTTP切换至HTTPS "超文本传输协议,即HT ...

  5. 手写webpack配置文件

    webpack是一款模块加载器兼打包工具,它能把各种资源,例如JS(含JSX).coffee.样式(含less/sass).图片等都作为模块来使用和处理,它能有Grunt或Gulp所有基本功能. We ...

  6. 深入理解python(四)python基础知识之函数

    函数部分 函数部分大概想分成两个部分来讲,第一部分是关于对函数参数的介绍,第二部分是局部变量全局变量和内置变量也就是变量作用域的LGB原则 函数的参数 1.关于形参和实参的问题 第一点要注意的是pyt ...

  7. 实现在vue中element-ui的el-dialog弹框拖拽

    参考:实现在vue中element-ui的el-dialog弹框拖拽 1.在 utils 中新建 directives.js 文件 import Vue from 'vue' // v-dialogD ...

  8. Educational Codeforces Round 73

    唉,又是掉分的一场比赛... A. 2048 Game 题意:给出一个数组,问能不能通过一系列操作(将数组中的两个数相加变成另一个数),使得数组中包含2048,数组中的数全是2的指数,可以则输出YES ...

  9. 一个基础的问题 多个$(function(){})里面的函数 为什么在下一个$(function(){})里没法执行。

    先看下例子 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <tit ...

  10. cnblogs 自定义主题字体渲染方案

    渲染效果图 由于我一直偏好衬线字体,所以在采用 Silence 主题 之后,还参照谢益辉的博客字体方案进行了改进 首先,在页首代码中添加盘古之白,如果你同时编写 中/英 文博客,你当然应该学习谢益辉的 ...