日期:2011-03-22 16:16:00 来源:本站整理
用Java 1.1 AWT制作窗口和程序片[Java编程]
本文“用Java 1.1 AWT制作窗口和程序片[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
我们常常都需求成立一个类,使其既可作为一个窗口调用,亦可作为一个程序片调用.为做到这一点,只需为程序片简单地加入一个main()便可,令其在一个Frame(帧)里构建程序片的一个实例.作为一个简单的示例,下面让我们来看看若何对Button2New.java作一番改正,使其能同时作为利用程序和程序片利用:
内部类WL和main()办法是加入程序片的唯一两个元素,程序片剩余的部份则原封未动.事实上,我们普通将WL类和main()办法做一结小的改良复制和粘贴到我们自己的程序片里(请记着成立内部类时普通需求一个外部类来处理它,形成它静态地消除这个需求).我们可以看到在main()办法里,程序片明确地初始化和开始,因为在这个例子里浏览器不能为我们有效地运行它.当然,这不会供应全部的浏览器调用stop()和destroy()的行为,但对大大都的情形而言它都是可承受的.假如它变成一个麻烦,我们可以://: Button2NewB.java // An application and an applet import java.awt.*; import java.awt.event.*; // Must add this import java.applet.*; public class Button2NewB extends Applet { Button b1 = new Button("Button 1"), b2 = new Button("Button 2"); TextField t = new TextField(20); public void init() { b1.addActionListener(new B1()); b2.addActionListener(new B2()); add(b1); add(b2); add(t); } class B1 implements ActionListener { public void actionPerformed(ActionEvent e) { t.setText("Button 1"); } } class B2 implements ActionListener { public void actionPerformed(ActionEvent e) { t.setText("Button 2"); } } // To close the application: static class WL extends WindowAdapter { public void windowClosing(WindowEvent e) { System.exit(0); } } // A main() for the application: public static void main(String[] args) { Button2NewB applet = new Button2NewB(); Frame aFrame = new Frame("Button2NewB"); aFrame.addWindowListener(new WL()); aFrame.add(applet, BorderLayout.CENTER); aFrame.setSize(300,200); applet.init(); applet.start(); aFrame.setVisible(true); } } ///:~
(1) 使程序片句柄为一个静态类(以替换部分可变的main()),然后:
(2) 在我们调用System.exit()之前在WindowAdapter.windowClosing()中调用applet.stop()和applet.destroy().
注意最后一行:
aFrame.setVisible(true);
这是Java 1.1 AWT的一个改变.show()办法不再被支持,而setVisible(true)则代替了show()办法.当我们在本章背脸部份学习Java Beans时,这些表面上易于改变的办法将会变得越发的公道.
这个例子一样被利用TextField改正而不是显示到掌握台或浏览器状况行上.在开辟程序时有一个限制条件就是程序片和利用程序我们都必须按照它们的运行情形挑选输入和输出构造.
这里展示了Java 1.1 AWT的别的小的新功效.我们不再需求去利用有错误偏向的操纵字符串指定BorderLayout定位的办法.当我们增添一个元素到Java 1.1版的BorderLayout中时,我们可以这样写:
aFrame.add(applet, BorderLayout.CENTER);
我们对位置规定一个BorderLayout的常数,以使它能在编译时被查验(而不是对老的构造暗暗地做不符合的事).这是一个明显的改进,并且将在这本书的余下部份大量地利用.
2. 将窗口接纳器变成匿名类
任何一个接纳器类都可作为一个匿名类履行,但这一向有个不测,那就是我们大概需求在别的场所利用它们的功效.但是,窗口接纳器在这里仅作为关闭利用程序窗口来利用,因此我们可以安全地制造一个匿名类.然后,main()中的下面这行代码:
aFrame.addWindowListener(new WL());
会变成:
这有一个长处就是它不需求别的的类名.我们必须对自己判断能否它使代码变得易于理解大概更难.不过,对本书余下部份而言,匿名内部类将普通被利用在窗口接纳器中.aFrame.addWindowListener( new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } });
3. 将程序片封装到JAR文件里
一个重要的JAR利用就是完善程序片的装载.在Java 1.0版中,人们偏向于试法将它们的代码填入到单个的程序片类里,因此客户只需求单个的服务器便可合适下载程序片代码.但这不但使后果缭乱,难以阅读(当然保护也然)程序,但类文件一向不能压缩,因此下载历来没有快过.
JAR文件将我们全部的被压缩的类文件打包到一个单个儿的文件中,再被浏览器下载.目前我们不需求成立一个糟糕的计划以最小化我们成立的类,并且用户将得到更快地下载速度.
细心想想上面的例子,这个例子看起来像Button2NewB,是一个单类,但事实上它包含三个内部类,因此共有四个.每当我们编译程序,我会用这行代码打包它到一个JAR文件:
jar cf Button2NewB.jar *.class
这是假定只有一个类文件在当前目录中,此中之一来自Button2NewB.java(不然我们会得到分外的打包).
目前我们可以成立一个利用新文件标签来指定JAR文件的HTML页,以下所示:
与HTML文件中的程序片标志有关的其他任何内容都保持不变.<head><title>Button2NewB Example Applet </title></head> <body> <applet code="Button2NewB.class" archive="Button2NewB.jar" width=200 height=150> </applet> </body>
以上是“用Java 1.1 AWT制作窗口和程序片[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |
评论内容只代表网友观点,与本站立场无关!
评论摘要(共 0 条,得分 0 分,平均 0 分)
查看完整评论