Java基础知识笔记第九章:组件及事件处理
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基础知识笔记第九章:组件及事件处理的更多相关文章
- Java基础知识笔记第二章:基本数据类型与数组
标识符和关键字 标识符: 1:字母,数字,下划线,美元符号 2.不能以数字开头 3.标识符不能是:true false null(尽管true false null不是java的关键字 ...
- Java基础知识笔记第一章:入门
java的地位: java具有面向对象,与平台无关,安全,稳定和多线程等优良特性,是目前软件设计中优秀的编程语言. java的特点: 1.简单 2.面向对象 3.平台无关 jre(java runti ...
- java基础知识-笔记整理
1.查看已安装jdk文件路径 CMD输入java -verbose. 2.java学习提升路线 java学习视屏地址: http://www.icoolxue.com/album/show/38 ...
- Java基础知识笔记第七章:内部类和异常类
内部类 /* *Java支持在一个类中定义另一个类,这样的类称为内部类,而包含内部类的类称为内部类的外嵌类 */ 重要关系: /* *1.内部类的外嵌类在内部类中仍然有效,内部类的方法也可以外嵌类的方 ...
- Java基础知识笔记第六章:接口
接口 /* 使用关键字interface来定义一个接口.接口的定义和类的定义很相似,分为接口声明和接口体 */ interface Printable{ final int max=100; void ...
- Java基础知识笔记第四章:类和对象
编程语言的几个发展阶段 面向机器语言 面向过程语言 面向对象语言:封装.继承.多态 类 类声明 class Person{ ....... } class 植物{ ....... } 类体 类使用 ...
- Java基础知识笔记第三章:运算符表达式语句
算术运算符与表达式 操作符 描述 例子 + 加法 - 相加运算符两侧的值 A + B 等于 30 - 减法 - 左操作数减去右操作数 A – B 等于 -10 * 乘法 - 相乘操作符两侧的值 A * ...
- Java基础知识笔记第五章:子类与继承
子类与父类 子类 class 子类名 extends 父类名{ ....... } 类的树形结构 子类的继承性 子类和父类在同一包中的继承性 子类继承了父类不是private的成员属性和成员方法 ...
- Java基础知识笔记(八:集合类)
目录 1 集合类简介 2 List介绍及简单使用 2.1 LinkedList介绍及简单使用 2.2 ArrayList介绍及简单使用 2.3 Vector介绍及简单使用 2.3.1 S ...
随机推荐
- FileOutputStream,BufferedOutputStream,FileWriter 效率比较
测试代码: /** * 写文件 * FileOutputStream, BufferedOutputStream, FileWriter * 三个流 效率比较 */ @Test public void ...
- SQL语句 分组 多行合并成一行
,,'')) FROM Table d GROUP by Id 另外: sql 单引号转义:两个单引号转义为一个单引号 set @sql='STUFF((SELECT '','' + Names FR ...
- 清晰架构(Clean Architecture)的Go微服务: 程序设计
我使用Go和gRPC创建了一个微服务,并将程序设计和编程的最佳实践应用于该项目. 我写了一系列关于在项目工作中做出的设计决策和取舍的文章,此篇是关于程序设计. 程序的设计遵循清晰架构(Clean Ar ...
- PHP中PHP $_POST和PHP $_REQUEST及PHP $_GET的用法及区别
笔者最近开始学习PHP语言大法,记录一下学习过程中遇到的知识点. 今天介绍的是php中有关 php $_post 和 php $_request 及 php $_get 的用法及区 ...
- 读书小记--<如何阅读一本书 >
目录 阅读的活力与艺术 基础阅读 检视阅读 分析阅读 主题阅读 阅读与心智成长 之前看到一位科大的博主,在考研期间看了很多书,同时也看了很多课外书籍,TA说希望能够陶冶自己的性情.看到这,我想起了 ...
- 再见2018,你好2019 -- 致 Mac 背后的自己
转眼间 2018 年即将过去,心有万千感慨,真的感觉到时间如白驹过隙,成长没有跟上时间的脚步,这叫老了一岁,如果跟上了,那就叫成熟了一岁.很遗憾,2018年我老了一岁. 新年之初,立过好几个 Flag ...
- C语言:将形参s所指字符串中所有ASCII码值小于97的字符存入形参t所指字符数组中,
//将形参s所指字符串中所有ASCII码值小于97的字符存入形参t所指字符数组中,形成一个新串,并统计出符合条件的字符个数返回. //关注点:使用*(t+n)的方式可以不改变指针的指向,像数组一样处理 ...
- Idea rest client 使用(全) 真香
看了网上好多的 idea rest client 讲解,大多都只是讲了它如何如何好,都只是简单的测了一个 json 的接口而已,个人实践了一把,里面还是有挺多坑的,但不得不说,那个脚本化处理请求的功能 ...
- 吴裕雄--天生自然Numpy库学习笔记:NumPy 从数值范围创建数组
import numpy as np x = np.arange(5) print (x) import numpy as np # 设置了 dtype x = np.arange(5, dtype ...
- 无线连接网络-FAST SSID Change
这篇随笔主要记录的是Apple设备连接思科无线可能出现的问题,尤其是在思科WLC3504下部署的无线网络,这种故障体现的尤为明显. For Single SSID To support Apple i ...