Applet 应用程序
一种能够在 Web 浏览器中执行的小程序,扩展了浏览器中的网页功能。
缺:
一、须要下载 Applet 及其相关文件
二、Applet 的功能是受限制的
优:
三、无需安装
四、平台无关性
五、安全
Applet 的生命周期
编写一个 Applet 程序,须要继承 JApplet 类,这个类提供了 Applet 程序的基本行为方式,只须要覆写其中的方法就能够完成咱们本身的 Applet 程序。
生命周期
一、初始化阶段:init 方法
在 Applet 执行之初,init 方法会自动被调用。init 方法的做用是完成 Applet 的初始化工做。通常,图形组件的初始化和版面分配都在这个方法中完成。在整个生命周期里,init 方法只会被调用一次。
二、执行阶段:start 方法
在完成初始化后,Applet 就会自动调用 start 方法,执行其中的代码。与 init 方法不一样的是,start 方法可能在整个生命周期中会被调用屡次。它不只仅是在 init 方法后被调用,在 Applet 当前窗口被激活时,start 方法也会被调用。
三、停止阶段:stop 方法
当不须要 Applet 程序,或者说关闭 Applet 程序的时候,会调用 stop 方法。在 stop 方法中,执行一些清理或者关闭某些耗费资源的操做。在整个生命周期里,stop 方法只会被调用一次。
四、释放资源:destroy 方法
在调用 stop 方法后,调用 destroy 方法完成最后的资源释放等工做。destroy 方法也只会被执行一次。
重量级的图形开发工具——AWT库(java.awt包)
java中最先出现的图形开发工具,但 AWT 不太受人欢迎。
缺点:
一、失去灵活性。大部分组件含有native code代码。没法根据须要任意改变组件的外观,没法在组件上任意地添加团
二、想要个性化改变 AWT 的控件,须要本身编写 C 语言的 native code 代码,没换一次平台要重写和编译本身的 native code 代码。
控件说明:
一、容器
二、组件
Label 标签,用于显示文本。
Button 按钮,点击按钮,会产生 ActionEvent 事件,利用 ActionListener 接口该事件
TextField 文本输入框,在这个组件中能够输入文本
CheckBox 复选框,提供用户多项选择的组件
Choice 下拉式菜单,以菜单的形式提供选择的组件
......
三、布局管理器
BoderLayout 将版面分红五个区域:东、西、南、北、中。能够将组件放入这五个区域中,但每一个区域只能放入一个组件
FlowLayout 顺序横向摆放组件,若一行没法摆放全部组件时,下一行接着从左到右的顺序加入组件
GridLayout 以行和列的方法排列组件。利用 GridLayout 将版面设置为几行和几列,而后横向顺序加入组件。
CardLayout 将容器垂直分层,每一次只放一个组件,把组件放入不一样的层并折叠起来,每次只能看到最上层的组件。
GridBagLayout 最具灵活性,能够设置组件放置的具体位置和大小。
事件监听与事件处理:
一、事件
二、事件源
三、事件监听
捕抓和处理该事件。委托事件模式(Delegation Model),事件源不一样的事件委托给不一样的事件监听类进行监听和处理。这种委托模式的另外一个特色,就是咱们只须要将感兴趣的时间委托给相应的事件监听类,对于那些不须要关心的事件,咱们不须要作任何事情,包括委托。
让界面开发更容易——Swing
AWT 没法知足咱们对图形化界面设计的发展需求,所以就有了 Swing。Swing 是在 AWT 的基础上发展起来的,它突破了 AWT 的局限性,也弥补了 AWT 致命的缺陷,它被设计成一个轻量级的图形开发工具。
Swing 是个轻量级的图形开发工具,没有 native code,也不依赖操做系统。
容器与控件说明
容器:
一、顶层容器
Swing 中的顶层容器包括 JFrame、JApplet、JDialog 和 JWindow。说是顶层的容器,实际上是理解应该是最底层的容器,由于它最接近操做系统。和 Swing 的其余容器相比,顶层容器的特色就是这些容器并不是轻量级容器,还有必定的 native code,Swing须要这些顶层容器和操做系统进行通信。值得注意的是,和 AWT 容器不一样,顶层容器中没法直接加入 JButton 等组件,须要借助其余容器加入顶层容器。
二、中间层容器
Swing 的中间层容器都是轻量级,包括 JPanel、JScrollPane、JSplitPane 和 JToolBar 等。这些中间层的容器有着本身的特色。例如,JPnael 支持 double buffering 功能,有利于处理动画;JScrollPane 支持滚动的窗口;JSplitPane 能将版面划分为两个区域。
三、特殊容器
Swing 中特殊容器包括:JInternalFrame 和 JLayeredPane 等。JInternalFrame 的使用几乎和 JFrame 同样,但它是轻量级容器,能够用来创建虚拟界面; JLayeredPane 是一个分层的容器,其实其余的容器都是 JLayeredPane 容器中的一层。
Swing 的组件
在 AWT 中有的组件,在 Swing 中都有,只是在名字前多加了J,例如 AWT 中 Button 在 Swing 中为 JButton。因为Swing中组件都是轻量级组件,AWT中组件为重量级,仍是那句话,Swing中组件相比AWT,在各方面都有了极大的改善。
在实现互动组件方面,Swing 中组件包括 JButton、ComboBox、JList、JMenu、JTextArea 和 JTextField等
在显示方面,实现不可编辑的组件包括 JLabel 和 JProgressBar 等组件;实现可编辑的显示组件包括 JColorChooser、JFileChoose、JFileChooser 和 JTable 等。
Swing的布局控制
Swing的事件监听与事件处理机制
同 AWT 差很少……
上大学那会儿比 较主流的Java图形开发插件是:Visual Editor 和 SWT Designer, 不久又出了个Jigloo, 但去官网看了下发现这个东西也好久没有更新了,不过听说短小精悍,五脏俱全。SWT Designer不久前也被Google收购后从新整合进本身的产品中,而后开源了,如今名字叫:WindowBuilder Pro,看上去界面组件很丰富强大的样子,支持Swing, AWT, SWT, 以及Google自家的GWT等等。html
目前JAVA图形界面开发主流工具以下:java
1. WindowBuilder Pro小程序
http://www.eclipse.org/windowbuilder/浏览器
https://developers.google.com/java-dev-tools/download-wbpro?hl=zh-CN安全
2. Jigloo(最新版是2010年更新的,看来这个项目如今已经再也不作了)
http://www.cloudgarden.com/jigloo/eclipse
3. 也能够直接用IDE如:NetBeans或MyEclipse,两者中都有自带的图形开发拖拽工具工具
相关阅读:
Eclipse进行可视化的GUI开发3大GUI插件
http://www.cnblogs.com/NationWoo/archive/2011/05/31/2065176.html布局