45fan.com - 路饭网

搜索: 您的位置主页 > 电脑频道 > 电脑教程 > 阅读资讯:创建窗口与applet程序的步骤

创建窗口与applet程序的步骤

2016-09-05 11:08:41 来源:www.45fan.com 【

创建窗口与applet程序的步骤

设计中要遵循的一条基本原则是:让简单的事情变得容易,让困难的事情变得可行!
1。java的GUI,有老版本的AWT,和新的Swing,eclipse也有一套全新的GUI库SWT。
AWT很老了,不要用,除非特殊情况。

2。Swing比其他GUI编程模型好的多,JavaBean是这个库的框架。复杂的GUI,可以使用
GUI构造工具快速开发。
它的特定是:1)动态绑定事件。2)将业务逻辑与用户界面逻辑相分离。
3。编写applet很受限制。表现在:applet不能访问本地磁盘。一般要把applet打包成jar文件,
JAR文件中的每一个单独实体都能使用"数字签名"。
而,applet的优势在1)不需要安装。2)不用担心不好的代码会损坏别人的系统。

4。applet的程序框架。
init() 自动调用,用来对applet进行首次初始化,其中包括组件的布局。必须总是覆盖次方法。
start() 每当applet进入web浏览器视野的时候,此方法被调用,使得applet能开启它的常规功能
(尤其是被stop关闭的功能)。它在init之后被调用。
stop() 每当applet离开浏览器的时候被调用。使得applet能关闭它的"昂贵"的操作,在destroy前被调用。
destroy() .当applet不在被使用,要从网页中卸载applet以最终释放资源的时候被调用。

5。为了在浏览器中允许applet,只需要在html中加入:
<applet code = Applete1 width = 100 height = 50 ></applet>
但是由于平台的原因,不能指望浏览器能支持正确风格的java.所以java提供了,HTMLconverter工具,
对前面的applet进行处理。
6。sun提供了appletviewer工具,能从HTML文件中抽取出<applet>标签,然后只运行这个applet 而不是
显示周围的HTML文件内容。它忽略了除了<applet >以外的所有信息。可以在java源文件中加入。
//<applet code = Myapplet width = 20 height = 100 ></applet>
然后使用appletviewer <java源文件>

7。可以为applet增加main函数,使得applet 可以从命令行运行。

8。swing组件都具有add×××Listener()和remove×××Listener()方法。为组件添加或者移除事件处理器。
这个事件模型是可以扩展的。事件处理器×××实现了相应的接口。一个简单的现实是用继承×××适配器.

9。基本swing组件包括说明:
1)按钮,包括复选框,单选按钮,菜单项都是由AbstractButton继承来。
( 使用BasicArrowButton,JToggleButton),想让单选按钮表现出某种排他行为,必须把他们加
入到按钮组(ButtonGroup).
2)JLabel或者任何从AbstractButton继承的组件都可以使用Icon,JComponet的setToolTipText
方法添加工具提示或者JToolTip类,setBorder为组件设置各种边框(TitledBorder,EtchedBorder,
LineBorder,BevelBorder,SoftBevelBorder)。
3)文本域JTextField,JTextArea常见监听器DocumentListener,PlainDocument
4)滚动面板(JScrollPane).
5)JTextPane控件可以毫不费力的支持多编辑操作.
6) 复选框(JCheckBox),单选按钮(JRadioButton),组合框(JComboBox),列表框(JList)
页面面板(JTabbedPane),消息框(JOptionPane.showMessageDialog()等),
菜单(相关类,JMemu,JMenuItem,JCheckBoxMenuItem,JRadioButtonMenuItem)
弹出式菜单(JPopupMenu),对话框(JDialog,与JFrame类似),文件对话框(JFileChooser,
滑块与进度条(JProgressBar,JSlider),树(JTree),表格(JTable)
7)任何JComponent都可以绘图,但是要是只想有一个直接绘图的平面的话,继承JPanel,覆盖其
paintComponent,此方法调用时,swing将传递一个Graphics对象。
8)任意能接受文本的组件都可以接受HTML文本。
9)选择外观,实例代码:
try{
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
}...
10)JFC提供剪切板支持(在java.awt.datatransfer包中):
Clipboard clipbd = getToolKit().getSystemClipboard();

10。使用JAR打包applet 如:jar cf packageName.jar *.class 。keytool 为applet签名,是applet
能访问本地磁盘。

11。Java Web Start是 java网络发布协议JNLP的一个参考实现,通过JNLP程序,可以在客户机上下载和安装
单机版的java应用程序。

12。swing是多线程的。而在swing 中使用多线程又可能同swing的事件调度线程争夺资源。所以,swing提供了
两种机制。SwingUtilities.invokeLater(),SwingUtilities.invokeandWait(),他们接受runable对象。
SwingUtilities.invokeandWait是死锁的一种必要条件,要小心。.invokeLater更常用,在初始化之后
的任何时刻设置swing组件的属性,都应该通过这些方法进行。

13。javaBean,是一种编码规则:
1)对象xx属性,通常写两个方法,getXxx()和setXxx().
2)对于布尔型属性可以使用is 替换 get.
3)bean的普通方法不必遵守以上规则,不过必须是public.
4)对于事件,使用swing的处理监听器的方式。addXxxListener() ,removeXxxListener()

14。java反射机制可以发现未知类(javaBean)的所有方法。另一个更简单的方案是:Introspector类。其最重要的一个
静态方法getBeanInfo,传递一个Class对象应用即可。

15。创建javaBean时必须假设它可能在多线程环境中运行。所以;
1)尽可能把bean中的所有公共方法都时synchronized的。
2)当一个多路事件触发了一组对事件感兴趣的监听器时,必须假设,在你遍历列表进行通知的同时,监听器可能被
添加或者移除。

16。更多参考《javaBean》,Elliotte Rusty Harold著。

 

本文地址:http://www.45fan.com/dnjc/72669.html
Tags: 窗口 创建 14章
编辑:路饭网
关于我们 | 联系我们 | 友情链接 | 网站地图 | Sitemap | App | 返回顶部