文档

Java™教程
隐藏目录
开发Java Web Start应用程序
路径:部署
课程:Java Web Start

开发Java Web Start应用程序

使用组件化架构设计的软件可以轻松地开发和部署为Java Web Start应用程序。以使用基于Swing的图形用户界面(GUI)的Java Web Start应用程序为例。通过组件化设计,GUI可以使用较小的构建块或组件构建。以下是创建应用程序GUI的一般步骤:

以下各节将详细介绍这些步骤,以使用Dynamic Tree Demo应用程序为例。如果您对Swing不熟悉,请参阅使用Swing创建GUI以了解更多有关使用Swing GUI组件的信息。

点击下面的“启动”按钮来启动Dynamic Tree Demo应用程序。


注意:  如果您看不到示例正在运行,您可能需要在浏览器中启用JavaScript解释器,以便Deployment Toolkit脚本能够正常运行。

创建顶层JPanel

创建一个名为JPanel的子类。这个顶层JPanel充当所有其他UI组件的容器。在以下示例中,DynamicTreePanel类是最顶层的JPanelDynamicTreePanel类的构造函数调用其他方法来正确创建和布局UI控件。

public class DynamicTreePanel extends JPanel implements ActionListener {
    private int newNodeSuffix = 1;
    private static String ADD_COMMAND = "add";
    private static String REMOVE_COMMAND = "remove";
    private static String CLEAR_COMMAND = "clear";
    
    private DynamicTree treePanel;

    public DynamicTreePanel() {
        super(new BorderLayout());
        
        //创建组件。
        treePanel = new DynamicTree();
        populateTree(treePanel);

        JButton addButton = new JButton("添加");
        addButton.setActionCommand(ADD_COMMAND);
        addButton.addActionListener(this);
        
        JButton removeButton = new JButton("删除");
        ....
        
        JButton clearButton = new JButton("清除");
        ...
        
        //布置所有内容。
        treePanel.setPreferredSize(
            new Dimension(300, 150));
        add(treePanel, BorderLayout.CENTER);

        JPanel panel = new JPanel(new GridLayout(0,3));
        panel.add(addButton);
        panel.add(removeButton); 
        panel.add(clearButton);
        add(panel, BorderLayout.SOUTH);
    }
    // ...
}

创建应用程序

对于具有基于Swing的GUI的应用程序,创建一个继承自javax.swing.JFrame的类。

在应用程序的main方法中,实例化您的顶级JPanel类,并将其设置为JFrame的内容窗格。 DynamicTreeApplication类的main方法在AWT事件调度线程中调用createGUI方法。

package webstartComponentArch;

import javax.swing.JFrame;

public class DynamicTreeApplication extends JFrame {
    public static void main(String [] args) {
        DynamicTreeApplication app = new DynamicTreeApplication();
        app.createGUI();
    }

    private void createGUI() {
        //创建并设置内容窗格。
        DynamicTreePanel newContentPane = new DynamicTreePanel();
        newContentPane.setOpaque(true); 
        setContentPane(newContentPane);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        pack();
        setVisible(true);
    }    
}

将核心功能与最终部署机制分离的好处

创建应用程序的另一种方法是只删除抽象层(单独的顶级JPanel)并在应用程序的main方法中布置所有控件。直接在应用程序的main方法中创建GUI的缺点是,如果以后选择将功能部署为小程序,将更难以部署。

在动态树演示示例中,核心功能被分离到DynamicTreePanel类中。现在,将DynamicTreePanel类放入JApplet并将其部署为小程序非常简单。

因此,为了保持可移植性并保持部署选项的开放性,请按照本主题中描述的基于组件的设计进行操作。

下载源代码以进一步实验动态树演示示例。


上一页: Java Web Start
下一页: 检索资源