首页 布局、事件

布局、事件

举报
开通vip

布局、事件nullSwing布局Swing布局容器、组件、布局和观感容器、组件、布局和观感1.容器和组件 组件是可以用图形化的方式显示在屏幕上并能够与用户进行交互的对象。 容器是一种特殊的组件,一种能够容纳其他组件或容器的组件。 2.布局管理器 为了使图形用户界面具有良好的平台无关性,提供了专门用来管理组件在容器中的布局的工具。 弄清楚容器、组件和布局管理器3者的关系。 3.观感 决定swing应用程序的外观。 布局管理器布局管理器Java中的布局类型包括以下几种: FlowLayout(流式布...

布局、事件
nullSwing布局Swing布局容器、组件、布局和观感容器、组件、布局和观感1.容器和组件 组件是可以用图形化的方式显示在屏幕上并能够与用户进行交互的对象。 容器是一种特殊的组件,一种能够容纳其他组件或容器的组件。 2.布局管理器 为了使图形用户界面具有良好的平台无关性,提供了专门用来管理组件在容器中的布局的工具。 弄清楚容器、组件和布局管理器3者的关系。 3.观感 决定swing应用程序的外观。 布局管理器布局管理器Java中的布局类型包括以下几种: FlowLayout(流式布局) BorderLayout (边界布局) GridLayout(网格布局) CardLayout (卡片布局) BoxLayout (箱子布局) GridBagLayout(网格包布局) 总体介绍总体介绍java.awt CardLayout 将组件象卡片一样放置在容器中,在某一时刻只有一个组件可见 java.awt FlowLayout 将组件按从左到右而后从上到下的顺序依次排列,一行不能放完则折到下一行继续放置 java.awt GridLayout 形似一个无框线的表格,每个单元格中放一个组件 java.awt BorderLayout 将组件按东、南、西、北、中五个区域放置,每个方向最多只能放置一个组件 java.awt GridBagLayout 非常灵活,可指定组件放置的具体位置及占用单元格数目 javax.swing BoxLayout 就像整齐放置的一行或者一列盒子,每个盒子中一个组件 Javax.swing SpringLayout 根据一组约束条件放置子组件 Javax.swing ScrollPaneLayout 专用于JScrollPane,含一个Viewport,一个行头、一个列头、两个滚动条 FlowLayout布局管理器FlowLayout布局管理器FlowLayout的构造函数有: FlowLayout( ):生成一个默认的流式布局 FlowLayout(int alignment):可以设定每一行组件的对齐方式 FlowLayout(int alignment,int horz,int vert):可以设定组件间的水平和垂直距离 Applet和面板的缺省布局 组件从左上角开始按从左到右、从上到下的方式排列 FlowLayout mylayout = new FlowLayout(); FlowLayout exLayout = new FlowLayout(FlowLayout.RIGHT); setLayout(exlayout); // 为容器设置新布局 BorderLayout布局管理器BorderLayout布局管理器下面是BorderLayout所定义的构造函数: - BorderLayout( ):生成默认的边界布局 - BorderLayout(int horz,int vert): 可以设定组件间的水平和垂直距离 窗口、框架和对话框等的缺省布局,组件被置于容器的北、南、东、西或中间位置 setLayout(new BorderLayout()); Button btnEast=new Button("东"); Button btnWest=new Button("西"); Button btnNorth=new Button("北"); Button btnSouth=new Button("南"); Button btnCenter=new Button("中"); add(btnEast,BorderLayout.EAST); add(btnWest,BorderLayout.WEST); add(btnNorth,BorderLayout.NORTH); add(btnSouth,BorderLayout.SOUTH); add(btnCenter,BorderLayout.CENTER); GridLayout布局管理器GridLayout布局管理器GridLayout的构造函数如下所示: -  GridLayout():生成一个单列的网格布局 - GridLayout(int row,int col):生成一个设定行数和列数的网格布局 - GridLayout(int row,int col,int horz,int vert):可以设置组件之间的水平和垂直间隔 用于将容器区域划分为一个矩形网格,组件按行和列排列 Button btn[]; // 声明按钮数组 String str[]={"1","2","3","4","5","6","7","8","9"}; setLayout(new GridLayout(3,3)); btn=new Button[str.length]; // 创建按钮数组 for(int i=0;i 方法 快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载 是: setLayout(null); 用户使用setLocation()、setSize()、setBounds()等方法为组件设置位置和大小。需要注意的是,这种方法会导致程序与系统相关,如不同的分辨率会产生不同的效果。 GridBagLayout布局管理器GridBagLayout布局管理器通过使用以下语法容器可获得 GridBagLayout: GridBagLayout gb=new GridBagLayout(); ContainerName.setLayout(gb); 要使用此布局,必须提供各组件的大小和布局等信息。 GridBagConstraints 类中包含 GridBagLayout 类用来定位及调整组件大小所需的全部信息。 组件大小不必相同 组件按行和列排列 放置顺序不一定为从左至右和由上至下GridBagConstraints 类 2-1GridBagConstraints 类 2-1成员变量列表: gridx, gridy : 指定组件放置于哪个单元 当把gridx值设置为GridBagConstriants.RELETIVE时,在一个组件添加时,将被放置在前一个组件的右侧.同理,对gridy值设置为GridBagConstraints.RELETIVE时,在添加组件时,将被放置在前一个组件的下方,(这是一种根据前一个组件而决定当前组件的相对放置方式) gridwidth, gridheight : 指定组件将占用多少行和多少列 weightx, weighty : 指定在一个 GridBagLayout 中应如何分配空间,这些变量的缺省值为 0 ipadx, ipady : 指定组件的最小高度和宽度GridBagConstraints 类2-2GridBagConstraints 类2-2成员变量列表: fill : 指定在单元大于组件的情况下,组件如何填充此单元,共有4可选值。缺省值为:GridBagConstraints.NONE anchor : 指定将组件放置在单元中的位置,共有9个可选值。缺省值为:GridBagConstraints.CENTER 什么是事件?什么是事件?事件-用户对组件的一个操作,称之为一个事件,是一个描述发生了什么的对象 事件源-事件的产生器(发生事件的组件) 事件处理器-接收事件、解释事件并处理用户交互的方法。 弄清楚事件、事件源和事件处理器三者的关系事件源事件源事件源是一个事件的产生者。例如,在Button组件上点击鼠标会产生以这个Button 为源的一个ActionEvent. 这个ActionEvent实例是一个对象,它包含关于刚才所发生的那个事件的信息的对象。这些信息包括: getActionCommand-返回与动作相关联的命令名称。 GetModifiers-返回在执行动作时持有的修饰符。 事件处理器事件处理器 事件处理器就是一个接收事件、解释事件并处理用户交互的方法。 Java程序对事件进行处理的方法是放在一个类对象中的,这个类对象就是事件监听器。 我们必须将一个事件监听器对象同某个事件源的某种事件进行关联,这样,当某个事件源上发生了某种事件后,关联的事件监听器中的有关代码才会被执行。我们把这个关联的过程称为向事件源注册事件监听器对象。 事件处理器首先与组件(事件源)建立关联,当组件接受外部作用(事件)时,组件就会产生一个相应的事件对象,并把此对象传给与之关联的事件处理器,事件处理器就会被启动并执行相关的代码来处理该事件。null组件(事件源)事件处理器注册事件监听器外部作用事件对象生成事件对象把事件对象传入事件处理器事件处理例子事件处理例子 以JButton为例,当其被按下时,就产生了一个事件。你的调用JButton的addActionListener向按钮组件注册,让它在按钮被按下时通知你。该函数接收一个“实现出ActionListener接口”的对象。ActionListener接口只拥有一个actionPerformed()。所以,要将对应的程序代码和JButton产生联系,就只要为某个class实现出ActionListener接口即可。这么一来,当按钮被按下,actionPerformed()便会被调用。nullJDK1.0层次模型的特点JDK1.0层次模型的特点优点 简单,而且非常适合面向对象的编程环境。 缺点 事件只能由产生这个事件的组件或包含这个组件的容器处理。 为了处理事件,你必须定义接收这个事件的组件的子类,或者在基容器创建handleEvent()方法。JDK1.1委托事件模型JDK1.1委托事件模型委托事件模型是在JDK1.1中引入的。在这个模型中,事件被送往产生这个事件的组件,然而,注册一个或多个称为监听者的类取决于每一个组件,这些类包含事件处理器,用来接收和处理这个事件。采用这种方法,事件处理器可以安排在与源组件分离的对象中。监听者就是实现了Listener接口的类。nullnull事件是只向注册的监听者 报告 软件系统测试报告下载sgs报告如何下载关于路面塌陷情况报告535n,sgs报告怎么下载竣工报告下载 的对象。每个事件都有一个对应的监听者接口, 规定 关于下班后关闭电源的规定党章中关于入党时间的规定公务员考核规定下载规定办法文件下载宁波关于闷顶的规定 哪些方法必须在适合接收那种类型的事件的类中定义。实现了定义那些方法的接口的类可以注册为一个监听者。 从没有注册的监听者的组件中发出的事件不会被传播 有可能创建并使用适配器(adapter)类对事件动作进行分类。 委托模型有利于把工作分布到各个类中。 新的事件模型提供对JavaBeans的支持。事件类型 事件类型 我们已经介绍了在单一类型事件上下文中从组件接收事件的通用机制。事件类的层次结构图如下所示。许多事件类在java.awt.event包中,也有一些事件类在API的其他地方。 对于每类事件,都有一个接口,这个接口必须由想接收这个事件的类的对象实现。这个接口还要求定义一个或多个方法。当发生特定的事件时,就会调用这些方法 事件的层次结构图事件的层次结构图事件处理模型事件处理模型Java 最新的事件处理方法是基于授权事件模型 当事件来源对象因用户的操作(鼠标或键盘),系统会自动触发此事件类对象E,并通知所授权的事件监听者A(若来源对象已向A注册),事件监听者A中有处理各种事件的方法(事件处理者1~n)便会处理此事件E的各种状况 。事件层次结构1事件层次结构1事件层次结构2事件层次结构2事件方法类型和接口 事件方法类型和接口 事件方法类型和接口(续)事件方法类型和接口(续)事件方法类型和接口(续)事件方法类型和接口(续)一个复杂的例子一个复杂的例子这个例子它将跟踪鼠标被按下时,鼠标的移动情况(鼠标拖动)。这个范例还将监测当鼠标没有按下时,鼠标的移动情况(鼠标移动)。 当鼠标按下或没有按下时,移动鼠标产生的事件会被实现了MouseMotionListener接口的类的对象检取。这个接口要求定义两个方法,mouseDragged()和mouseMoved()。即使你只对鼠标拖动感兴趣,也必须提供这两个方法。然而,mouseMoved()的体可以是空的。 要检取其他鼠标事件,包括鼠标点击,必须定义MouseListener接口。这个接口包括若干个事件,即:mouseEntered, mouseExited, mousePressed, mouseReleased和 mouseClicked。 发生鼠标或键盘事件时,有关鼠标的位置和所按下的键的信息可以从事件中得到。 注意点:注意点:定义多重接口 这个类由第4行中的如下代码声明: implements MouseMotionListener, MouseListener 声明多个接口时,可以用逗号隔开。null监听多个源 如果你在第24行和第25行中,调用如下方法: 两种类型的事件都会引起TwoListen类中的方法被调用。一个对象可以“监听”任意数量的事件源;它的类只需要实现所要求的接口。 f.addMouseListener(this); f.addMouseMotionListener(this); null多监听者 AWT事件监听框架事实上允许同一个组件带有多个监听者。一般地,如果你想写一个程序,它基于一个事件而执行多个动作,把那些行为编写到处理器的方法里即可。然而,有时一个程序的设计要求同一程序的多个不相关的部分对于同一事件作出反应。这种情况是有可能的,例如,将一个上下文敏感的帮助系统加到一个已存在的程序中。 监听者机制允许你调用addXXXlistener方法任意多次,而且,你可以根据你的设计需要指定任意多个不同的监听者。事件发生时,所有被注册的监听者的处理器都会被调用。 事件Adapters(适配器) 事件Adapters(适配器) 你定义的Listener可以继承Adapter类,而且只需重写你所需要的方法。例如: 实现每个Listener接口的所有方法的工作量是非常大的,尤其是MouseListener接口和ComponentListener接口。 以MouseListener接口为例,它定义了如下方法: mouseClicked(MouseEvent) mouseEntered(MouseEvent) mouseExited(MouseEvent) mousePressed(MouseEvent) mouseReleased(MouseEvent) 为了方便起见,Java语言提供了Adapters类,用来实现含有多个方法的类。这些Adapters类中的方法是空的。null你可以继承Adapters类,而且只需重写你所需要的方法。例如: import java.awt.*; import java.awt.event.*; public class MouseClickHandler extends MouseAdapter { // We just need the mouseClick handler, so we use // the Adapter to avoid having to write all the // event handler methods public void mouseClicked (MouseEvent e) { // Do something with the mouse click... } } 匿名类 匿名类 可以在一个表达式的域中,包含整个类的定义。这种方法定义了一个所谓的匿名类并且立即创建了实例。匿名类通常和AWT事件处理一起使用。 应用举例应用举例MouseEvent鼠标事件 WindowEvent窗口事件 ActionEvent动作事件(JButton,JList,JTextField,JMenuItem极其派生类,包括JCheckBoxMenuItem,JMenu,JpopMenu)。 ItemEvent:JCheckBox,JCheckBoxMenuItem,JComboBox,JList,以及任何实现出ItemSelectable接口的类。 练习练习设计计算器 从数据库中读出一条学生的数据并显示。 null实现两个窗体之间的数据交互,一窗体里的值,可以放到另外一个窗口中。联系方式联系方式杭州和盈科技公司 Address:潮王路238号银地大厦2F www.aowin.com
本文档为【布局、事件】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_969540
暂无简介~
格式:ppt
大小:499KB
软件:PowerPoint
页数:0
分类:互联网
上传时间:2011-03-30
浏览量:19