版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第9章 图形用户界面 29.1、Swing组件 3图形用户界面编程概述 两个用于图形用户界面编程的包:AWT和Swing 图形界面上显示的各种对象都称为GUI控件组件:构成图形界面的基本元素,不能容纳其他组件,如按钮、文本框等 容器:用来容纳其他组件的区域,如面板、框架等。有的容器还可以容纳其它容器。 4框架(Frame) import java.awt.*;import javax.swing.*;class SimpleFrame extends JFrameprivate JLabel lb;SimpleFrame() setTitle(框架示例);setLocation(300,200
2、); setSize(300,200);setDefaultCloseOperation(EXIT_ON_CLOSE); lb = new JLabel(“我爱Java, SwingConstants.CENTER);Container c = getContentPane();c.add(lb); 5框架(Frame) import java.awt.*;import javax.swing.*;class SimpleFrame extends JFrameprivate JLabel lb;SimpleFrame() setTitle(框架示例);setLocation(300,200)
3、; setSize(300,200);setDefaultCloseOperation(EXIT_ON_CLOSE); lb = new JLabel(“我爱Java, SwingConstants.CENTER);add(lb); 6框架(JFrame) class SimpleFrameDemopublic static void main(String args)SimpleFrame frm = new SimpleFrame();frm.setVisible(true);import javax.swing.*;import java.awt.*;class ButtonFrame
4、extends JFrameprivate JButton btnChinese,btnEnglish;ButtonFrame()setTitle(按钮示例);setBounds(300,200,300,200);btnChinese = new JButton(中文);btnEnglish = new JButton(English);JPanel p = new JPanel();p.add(btnChinese);p.add(btnEnglish);setContentPane(p);setDefaultCloseOperation(EXIT_ON_CLOSE);class Button
5、FrameDemopublic static void main(String args)ButtonFrame frm = new ButtonFrame();frm.setVisible(true);8构造方法说明JTextField( )创建一个文本框JTextField(int n)创建一个列宽为n的空文本框JTextField(String s)创建一个文本框,并显示字符串sJTextField(String s,int n)创建一个文本框,并以指定的字宽n显示字符串s方法说明void setFont(Font f)设置字体void setHorizontalAlignment(in
6、t alig)设置文本的水平对齐方式(LEFT、CENTER、RIGHT)void addActionListener(ActionListener e)添加指定的动作事件监听程序9构造方法说明JTextArea ()创建一个文本区JTextArea (int n,int m)创建一个具有n行m列的文本区JTextArea(String s)创建一文本区,并显示字符串sJTextArea(String s,int n,int m)创建一个文本区,并以指定的行数n和列数m显示字符串s方法说明void insert(String str,int pos)在文本区的指定位置插入指定的文本void a
7、ppend(String str)将指定的文本添加到文本区中内容的末尾void replaceRange(String str, int start, int end)将文本区中指定范围的文本用指定的新文本替换int getRows( )返回文本区的行数void setRows(int rows)设置文本区的行数import javax.swing.*;class TextFrame extends JFrameprivate JLabel lblName, lblRemark;private JTextField tf;private JTextArea ta;TextFrame()lblN
8、ame = new JLabel(名称:);lblRemark = new JLabel(备注:);tf = new JTextField(20);ta = new JTextArea(5,20);/5行20列ta.setLineWrap(true); ta.setWrapStyleWord(true); setTitle(文本框与文本区示例);setBounds(300,200,300,170);setDefaultCloseOperation(EXIT_ON_CLOSE);JPanel p = new JPanel();p.add(lblName); p.add(tf);p.add(lbl
9、Remark); p.add(ta);setContentPane(p);class TextFrameDemo public static void main(String args)TextFrame frm = new TextFrame();frm.setVisible(true);119.2、布局管理器 12布局管理器决定组件在界面中所处的位置和大小 创建一个布局管理器对象将布局管理器对象指定为容器的布局管理者五种布局管理器FlowLayout GridLayoutBorderLayoutCardLayoutGridBagLayoutimport javax.swing.*;impo
10、rt java.awt.*;class FlowLayoutFrame extends JFrameJButton b1 = new JButton(确定);JButton b2 = new JButton(取消);JButton b3 = new JButton(重置);JButton b4 = new JButton(返回);JButton b5 = new JButton(放弃);FlowLayoutFrame()setTitle(流布局器示例);setSize(300,200);setLocation(300,200);setDefaultCloseOperation(JFrame.E
11、XIT_ON_CLOSE);JPanel p = new JPanel();p.setLayout(new FlowLayout();p.add(b1);p.add(b2);p.add(b3);p.add(b4);p.add(b5);setContentPane(p); 14FlowLayout从上到下、从左到右进行放置。当容器的大小变化时,组件的大小不变,但是相对位置会发生变化。构造方法主要下面几种: FlowLayout(FlowLayout.RIGHT,20,40); FlowLayout(FlowLayout.LEFT);FlowLayout(); /缺省的对齐方式居中对齐,横向间隔和
12、纵向间隔都是缺省值5个象素15BorderLayout把容器分成5个区域:North,South,East,West和Center,每个区域只能放置一个组件。 上北、下南、左西、右东、中当容器的大小变化时,按钮相应的位置不变化,但其大小改变。 是Window,Frame和Dialog的缺省布局管理器。 构造方法主要下面2种BorderLayout(int h,int v) /h,v组件间的水平和垂直距离BorderLayout() / 组件的垂直和水平间隔为0。class BorderLayoutFrame extends JFrameJButton btnEast = new JButton
13、(按钮东);JButton btnWest = new JButton(按钮西);JButton btnSouth = new JButton(按钮南);JButton btnNorth = new JButton(按钮北);JButton btnCenter = new JButton(按钮中);BorderLayoutFrame()setTitle(边界布局器示例);setSize(300,200);setLocation(300,200);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);JPanel p = new JPanel(); p.s
14、etLayout(new BorderLayout();p.add(btnEast,BorderLayout.EAST);p.add(btnWest,BorderLayout.WEST);p.add(btnSouth,BorderLayout.SOUTH);p.add(btnNorth,BorderLayout.NORTH);p.add(btnCenter,BorderLayout.CENTER);setContentPane(p); 17GridLayout (java.awt.GridLayout)将空间划分为由行和列组成的网格单元,每个单元放一个组件,网格单元大小相同指定行数和列数Gri
15、dLayout类的构造函数public GridLayout ( ) 生成一个行数为1的布局管理器对象。public GridLayout ( int rows, int cols )public GridLayout (int rows, int cols , int hgap, int vgap )import javax.swing.*;import java.awt.*;class GridLayoutFrame extends JFrameString strArr = 北京,上海,广州,杭州,南京,厦门,西安,无锡,青岛;JButton btnArr;GridLayoutFrame
16、()setTitle(网格布局器示例);setSize(300,200);setLocation(300,200);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);JPanel p = new JPanel();p.setLayout(new GridLayout(3,3,10,10);btnArr = new JButton9;for(int i = 0; i strArr.length; i+)btnArri = new JButton(strArri);p.add(btnArri);setContentPane(p); 19文本行一个单行的文
17、本域,可接受从键盘输入的信息AWT用TextField表示,Swing 用JTextField表示TextField类常用的方法:1. public TextField( ):3个字符的空文本行。2. public TextField(int cols) 3. public TextField(String text)4. public TextField(String text, int cols)5. public getText();6. public void setEchoChar( char c ) 设置用户输入的响应字符,防止他人偷看。20文本区一个多行的文本域,内容超出显示范围
18、时,具有滚动显示的功能AWT用TextArea表示,Swing 用JTextArea表示TextArea类常用的方法:1. public TextArea( ) 2. public TextArea( String text ) 3. public TextArea( int rows, int columns ) 4. public TextArea( String text, int rows, int columns ) 5. public TextArea( String text, int rows, int columns, int scrollbars )218.3、事件处理 事
19、件(Event)用户对界面操作的描述鼠标移动、鼠标点击、键盘键入等事件类ActionEvent:单击按钮;文本域中按回车键KeyEvent:按键时触发ItemEvent:列表类,当选项状态发生变化时每个组件能产生的事件是确定的。事件处理模型事件源产生事件事件送给监听器监听器处理事件(执行监听器的某个方法)如何实现事件处理定义监听器类对于事件XXXEvent, 要想接收并处理这类事件,必须定义相应的事件监听器类,该类需要实现与该事件相对应的接口XXXListener事件监听注册(委托)组件对象必须注册该类事件的监听器,使用addXXXListener(监听器对象) 方法来注册监听器。 委托事件模型import javax.swing.*;import java.awt.event.*;class AdderFrame extends JF
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年基础教育校长任期目标责任聘用合同示范文本3篇
- 2025年广东珠海市城市管理指挥中心招聘人员历年高频重点提升(共500题)附带答案详解
- 2024年精简居间服务合同集3篇
- 2025年度民间借贷合同范本:医疗健康产业贷款合同范例2篇
- 分拆上市的动因及绩效研究
- ESG表现、新质生产力与企业高质量发展
- 校本研修能力提升班开班仪式发言稿范文
- 云南省师大附中2021届高三高考适应性月考(五)文综试题-扫描版含解析
- 数据通信技术论文
- 齿轮齿条传动机构设计说明书
- DB11-T212-2017园林绿化工程施工及验收规范
- 小学数学自制教具学具的研究及探讨
- 广东省幼儿园一日活动指引(试行)
- 光学材料-光学加工流程
- 奔驰卡车产品分析(课堂PPT)
- 企业各部门安全生产职责培训PPT课件
- 反循环钻孔灌注桩施工方案
- 新能源小客车购车充电条件确认书
- 发明专利专利答辩模板
- 市政府副市长年道路春运工作会议讲话稿
- 铸铁镶铜闸门
评论
0/150
提交评论