欢迎来到天天文库
浏览记录
ID:15178000
大小:715.50 KB
页数:34页
时间:2018-08-01
《第10章 swing组件概述》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、模块十Swing组件概述1.Swing概述Java1.0刚出现时,包含一个用于基本GUI编程的类库,Sun把它叫做抽象窗口工具箱(AbstractWindowToolkit,AWT).基本AWT库处理用户界面元素的方法是把这些元素的创建和行为委托给每个目标平台(Windows,Solaris,Macintosh等)上的本地GUI工具进行处理。不同平台的AWT用户界面存在着不同的bug。程序员们必须在每一个平台上测试他们的应用程序,他们因此嘲笑AWT是“一次编写,到处调试”。在1996年,Netscape开发了一个工作方式完
2、全不同的GUI库,他们把它叫做IFC(InternetFoundationClasses,因特网基础类集)。用户界面元素,如按钮,菜单等,是绘制到空白窗口上的。因此,Netscape的IFC部件在程序运行的所有平台上看起来都一样。Sun和Netscape合作完善了这种方法,创建了一个新的用户界面库,它的代码名是“Swing”(有时也叫作“Swing集”)。从此才真正实现了“一次编写,到处运行”的口号。另外,Swing只是提供了更好的用户界面组件而已。AWT的基本体系结构,尤其是事件处理模型,从Java1.1版后并没有改变。
3、Swing有以下的优势:1,Swing具有更丰富,更方便的用户界面元素集合。2,Swing对低层平台的依赖更少;因此和平台有关的bug也少的多。3,Swing给不同平台上的用户一致的感觉。2.创建框架Java中的顶层窗口(即:那些没有包含在其他窗口中的窗口)被称为框架。例如:SimpleJFrameTest.javaimportjavax.swing.*;publicclassSimpleJFrameTest{publicstaticvoidmain(String[]args){SimpleJFramefram=newSi
4、mpleJFrame();fram.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);fram.show();//fram.setVisible(true);}}classSimpleJFrameextendsJFrame{publicstaticfinalintWIDTH=400;publicstaticfinalintHEIGHT=300;publicSimpleJFrame(){setSize(WIDTH,HEIGHT);}}注解:大部分Swing组件类的名字都是以“J”开
5、头,如JButton,JFrame,JTextField等等。Java中也有着Button,Frame类,不过它们都是AWT组件。如果你不小心忘了写Swing组件前的“J”,程序还是很可能能够编译和运行,不过由于混杂了Swing和AWT组件,在视觉和响应上可能会有不一致的地方。3.给框架定位JFrame类本身只有几个用来改变框架外观的类。当然,通过继承,JFrame从不同的超类中继承来很多用于处理框架大小和位置的方法。下面列出几个可能最为重要的方法:ldispose方法----关闭窗口并收回用于创建窗口的任何资源;lset
6、IconImage方法----当窗口最小化时,把一个Image对象用作图标。lsetTitle方法-----改变标题栏中的文字。lsetResizable方法—使用boolean参数来决定框架大小是否能被用户改变。lsetLocation方法----用来显示组件在容器中的位置(对于框架来说,方法中的参数坐标是相对于整个屏幕而言的,对于容器内的组件,坐标是相对于容器的)。lsetBounds方法----同上,只不过它带有四个参数(其中前两个参数同上,都是设置组件的位置,后两个参数用来设置组件的大小)。lToolkit工具的介
7、绍4.在面板中显示信息JFrame与Frame不同的是,在JFrame中加组件是加在内容窗格里的。如:ContainercontentPane=frame.getContentPane();//用上例中的frame对象JComponentc=…;contentPane.add(c);如果你只需要在框架中显示一个Swing组件,那么你可以用下面的方式把组件放置到内容窗格中。Frame.setContentPane(c);面板是也是个容器。它可以再放其他的组件,我们可以设计自己的面板:²定义一个扩展JPanel的新类²覆盖pa
8、intComponent方法注意:paintComponent方法实际上定义在JComponent中,这个类是所有非窗口Swing组件的父类。该方法有一个Graphics类型的参数。Graphics对象存储了一个用于绘制图形和文本的设置集合(比如字体和当前颜色)。Java中的所有绘制都必须用Graphi
此文档下载收益归作者所有