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. FileOutputStream,BufferedOutputStream,FileWriter 效率比较

    测试代码: /** * 写文件 * FileOutputStream, BufferedOutputStream, FileWriter * 三个流 效率比较 */ @Test public void ...

  2. SQL语句 分组 多行合并成一行

    ,,'')) FROM Table d GROUP by Id 另外: sql 单引号转义:两个单引号转义为一个单引号 set @sql='STUFF((SELECT '','' + Names FR ...

  3. 清晰架构(Clean Architecture)的Go微服务: 程序设计

    我使用Go和gRPC创建了一个微服务,并将程序设计和编程的最佳实践应用于该项目. 我写了一系列关于在项目工作中做出的设计决策和取舍的文章,此篇是关于程序设计. 程序的设计遵循清晰架构(Clean Ar ...

  4. PHP中PHP $_POST和PHP $_REQUEST及PHP $_GET的用法及区别

     笔者最近开始学习PHP语言大法,记录一下学习过程中遇到的知识点.          今天介绍的是php中有关 php $_post 和 php $_request 及 php $_get 的用法及区 ...

  5. 读书小记--<如何阅读一本书 >

    目录 阅读的活力与艺术 基础阅读 检视阅读 分析阅读 主题阅读 阅读与心智成长   之前看到一位科大的博主,在考研期间看了很多书,同时也看了很多课外书籍,TA说希望能够陶冶自己的性情.看到这,我想起了 ...

  6. 再见2018,你好2019 -- 致 Mac 背后的自己

    转眼间 2018 年即将过去,心有万千感慨,真的感觉到时间如白驹过隙,成长没有跟上时间的脚步,这叫老了一岁,如果跟上了,那就叫成熟了一岁.很遗憾,2018年我老了一岁. 新年之初,立过好几个 Flag ...

  7. C语言:将形参s所指字符串中所有ASCII码值小于97的字符存入形参t所指字符数组中,

    //将形参s所指字符串中所有ASCII码值小于97的字符存入形参t所指字符数组中,形成一个新串,并统计出符合条件的字符个数返回. //关注点:使用*(t+n)的方式可以不改变指针的指向,像数组一样处理 ...

  8. Idea rest client 使用(全) 真香

    看了网上好多的 idea rest client 讲解,大多都只是讲了它如何如何好,都只是简单的测了一个 json 的接口而已,个人实践了一把,里面还是有挺多坑的,但不得不说,那个脚本化处理请求的功能 ...

  9. 吴裕雄--天生自然Numpy库学习笔记:NumPy 从数值范围创建数组

    import numpy as np x = np.arange(5) print (x) import numpy as np # 设置了 dtype x = np.arange(5, dtype ...

  10. 无线连接网络-FAST SSID Change

    这篇随笔主要记录的是Apple设备连接思科无线可能出现的问题,尤其是在思科WLC3504下部署的无线网络,这种故障体现的尤为明显. For Single SSID To support Apple i ...