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(inttabPlacement);3.滚动窗口:

JScrollPane scroll=new JScrollPane(newJTextArea())4. 拆分窗格JSplitPane

JSplitPane(inta,Component b,Component c)

JSplitPane(int a,booleanb,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. java 哈希表和向量_Java基础知识笔记(一:修饰词、向量、哈希表)

    一.Java语言的特点(养成经常查看Java (1)简单性:Java语言是在C和C++计算机语言的基础上进行简化和改进的一种新型计算机语言.它去掉了C和C++最难正确应用的指针和最难理解的多重继承技术 ...

  2. java保护型数据成员_Java基础知识笔记第四章:类和对象

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

  3. Java基础知识笔记-11_2-Swing用户界面组件

    Java基础知识笔记-11_2-Swing用户界面组件 这章教程两个版本,一个语法是非lambda表达式版本,另一个是lambda表达式版本 非lambda表达式版本 1 Java Swing概述 J ...

  4. java继承原理内存角度_Java基础知识巩固

    最近发现自己的Java基础知识还是有点薄弱,刚好有点空闲时间进行再补一补,然后进行整理一下,方便自己以后复习.其实个人认为Java基础还是很重要的,不管从事Java后端开发还是Android开发,Ja ...

  5. java知识点博客园_JAVA基础知识回顾

    JAVA基础知识回顾 一.背景介绍 JavaSE(J2SE)(Java2 Platform Standard Edition,java平台标准版) JavaEE(J2EE)(Java 2 Platfo ...

  6. java不死神兔总数_Java基础知识强化之IO流笔记13:递归之不死神兔问题(斐波那契数列)...

    1.这个问题是如下的: 有一对兔子,从出生后第3个月起,每个月都生一对兔子,小兔子长到第3个月又生一对兔子,加入兔子都不死,问第20个月兔子的对数? 分析:我们找规律 兔子对数 第1个月:   1 第 ...

  7. java返回特定下标元素_java基础--输出数组中指定元素的下标

    java基础--输出数组中指定元素的下标 java基础--输出数组中指定元素的下标 package com.lcn.day05; public class ArrayDemo8 { /** * 输出数 ...

  8. java表达式语句_Java基础知识笔记第三章:运算符表达式语句

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

  9. java中多线程重要吗_Java基础知识_多线程必要知识点

    一.使用多线程遇到的问题 1.1  线程安全问题 在前面的文章中,多线程主要是为了提高我们应用程序的使用率.但同时,这会给我们带来很多安全问题. 如果我们在单线程中以顺序(串行->独占)的方式执 ...

最新文章

  1. 转载:使用 OpenCV 识别 QRCode
  2. C语言 读取txt文档按行读取到新的txt文档
  3. 关于webservice的经典理解
  4. JS阻止冒泡和取消默认事件(默认行为)
  5. 拒绝无脑试错:写给萌新的“科学炼丹”入门手册
  6. C ~ 指针函数与函数指针的区别
  7. CPU,内存, 硬盘,指令之间的关系
  8. 做网站用UTF-8编码还是GB2312编码?
  9. 20165301陈潭飞2017-2018-2 20165301 实验三《Java面向对象程序设计》实验报告
  10. 微软开放技术热烈祝贺开源社成立!
  11. console口和telnet登录交换机
  12. Bootstrap Switch 开关控件
  13. CDA数据分析师认证证书含金量不断提高,成数据分析入门新刚需!
  14. springboot+elasticsearch+bboss框架集成遇到的坑
  15. flash mx拖拽实例_在Flash MX中制作射击游戏
  16. STM32F105双CAN双FIFO通讯心得体会
  17. Swift UIView代码控制隐藏与显示
  18. pdf合到一起java_如何将两个PDF文件合并成一个Java?
  19. 一张图学Python
  20. Oracle Linux6.9下安装Oracle 11.2.0.4.0及psu补丁升级

热门文章

  1. FFmpeg入门详解之70:获取音视频流信息(Metadata)
  2. Android 性能优化lt;九 RecyclerView替代Listview用法
  3. 1 自动化开源运维平台选择和功能思考 2 运维价值思考- 扁鹊三兄弟-昨天今天明天-个人家庭组织所有管理通用
  4. Revit中曲面墙的开洞方法及【一键开洞】操作
  5. 【Excel】单元格内容显示完整
  6. 小米众筹新品---8H凉感慢回弹记忆绵枕 99元 上手开箱图
  7. 幼儿园认识颜色计算机游戏,【幼儿园认识颜色教案】小班公开课认识颜色_幼儿园关于颜色的教案_亲亲宝贝网...
  8. EasyDL之图片分类API接口实现-基于python语言
  9. [经验教程]腾讯视频VIP会员可同时登录几台设备及腾讯视频会员帐号怎么管理设备?
  10. PDF编辑之添加页码以及去掉水印