zoukankan      html  css  js  c++  java
  • JAVA与图形界面开发(Applet应用程序、AWT库、Swing)

    • Applet

    1)简单说,Applet就是嵌入到网页中的小程序,Java代码。

    2)编写Applet程序,要继承JApplet类,并根据自己需要覆写相关方法(init、start、stop、destroy<可选>)即可。

    3)Applet生命周期:

      初始化阶段:init方法(自动被调用,完成图形组件的初始化和版面分配)

      执行阶段:start方法(当Applet当前窗口被激活时,执行相应代码)

      终止阶段:stop方法(关闭Applet程序时)

      释放资源:destroy方法

    4)向Applet里添加控件——init

    5)Applet的事件处理模型———首先注册需要捕捉的事件;然后编写相应的处理逻辑。

      button.addActionListener(this);//注册,this表示Applet程序本身

      public void actionPerformed(ActionEvent e){  if(e.getActionCommand().equals("name")){  label.setText("hello "+text.getText());  }  }//处理逻辑

    6)将Applet程序插入网页

      在网页中需要的地方插入代码:<applet code="HelloWorld.class" width=200 height=100></applet>//告诉浏览器该applet程序图形界面的大小

      然后将HelloWorld.class和HelloWorld.html文件放在同一个目录下,点击html文件即可运行。

      或直接使用JDK提供的Appletviewer命令运行Applet程序:在dos环境中的相关路径下键入Appletviewer HelloWorld.html即可。

      

    • AWT(Abstract Window Toolkit,抽象窗口工具包)

    1)AWT提供了所有OS共有的图形控件,如按钮、菜单、文本框等。

    2)但是AWT是建立在OS之上,所以大部分组件都含有native code代码。虽然native code代码保证了控件与OS的兼容性,但也使AWT中的控件失去了灵活性。利用AWT开发图形界面,我们无法改变组件外观,除非编写C语言的native code代码,这对跨平台是个致命打击,同时AWT效率也不高。

    3)所以,了解一下就可以了,知道她有三类控件:组件(label、button等)、容器(window、panel、applet)、布局管理器(FlowLayout、GridLayout等)。

    4)也要进行事件的监听、事件的处理。

    • Swing———AWT改进版,使图形界面开发更容易

    1)Swing是个轻量级的图形开发工具,没有native code,也不依赖于操作系统,Java的跨平台在Swing上得到了极大地体现。

    2)三类容器:

      顶层容器(JFrame、JApplet、JDialog、JWindow):并非轻量级,还需要native code,因为需要他们与OS进行通讯。顶层容器不能直接加入JButton等组件,必须借助其他容器。

      中间层容器(JPanel、JScrollPane、JSplitPane、JToolBar等):轻量级容器。

      特殊容器(JInternalFrame、JLayeredPane等):轻量级。

    3)丰富的组件:AWT有的组件Swing都有,只是在名字前加了J,都是轻量级组件。

    4)五大布局管理器:BorderLayout、FlowLayout、GridLayout、CardLayout、GridBagLayout。

    5)事件监听和事件处理机制:和AWT一样,采用委托事件模式,即——将事件源不同的事件委托给不同的事件监听类进行监听和处理,同时只需要将感兴趣的事件委托给相应的事件监听类,而不用关心不需要的事件。

    6)做个小程序玩玩吧。。。

  • 相关阅读:
    设计模式之Builder (创建者模式)的一些个人理解(转)
    SystemClock.sleep和Thread.sleep的区别(转)
    Android应用开发基础之四:网络编程(一)
    handler机制的原理(转)
    NullPointerException at android.widget.AbsListView.obtainView at android.widget.ListView.makeAndAddView
    Android之Adapter用法总结(转)
    [Done]ibatis/mybatis: java.lang.NoSuchMethodException
    [Done]java.sql.SQLException: Connection is read-only. Queries leading to data modification are not allowed
    [Done]FindBugs: boxing/unboxing to parse a primitive
    Python中的基本运算符
  • 原文地址:https://www.cnblogs.com/mmcmmc/p/3898845.html
Copyright © 2011-2022 走看看