Echo3学习笔记1

1.Echo2应用的基本原理: 在使用Echo2建立一个Web应用之前,你需要首先建立两个Java类: ApplicationInstance WebContainerServletApplicationInstance 代表每个用户实例的状态,WebContainerServlet继承自HttpServlet, 负责管理http连接,并为每个新的用户生成并分配一个新的ApplicationInstance

public class HelloWorldApp extends ApplicationInstance {

    public Window init() {

        Window window = new Window();

 

        ContentPane contentPane = new ContentPane();

        window.setContent(contentPane);

 

        Label label = new Label("Hello, world!");

        contentPane.add(label);

       

        return window;

    }

}

public class HelloWorldServlet extends WebContainerServlet {

    public ApplicationInstance newInstance() {

        return new HelloWorldApp();

    }

}

**典型地用于布局的部件如WindowPane, Column, Grid, ContentPane

**布局

ColumnLayoutData button1ColumnLayoutData = new ColumnLayoutData();

 

       button1ColumnLayoutData.setAlignment(new Alignment(Alignment.RIGHT,Alignment.DEFAULT));

Button button1 = new Button("first button");

     button1.setLayoutData(button1ColumnLayoutData);

2. 事件

final Button button = new Button("Please click me.");

button.addActionListener(new ActionListener() {

    public void actionPerformed(ActionEvent e) {

        button.setText("Thanks!");

    }

});

 

3. 用户输入部件: Button, RadioButton, CheckBox, TextField, TextArea, PasswordField, SelectField ListBox 部件

Button 部件就是普通的按钮可以接受用户动作并召唤相应的反映.CheckBox 部件是有选择状态的按钮,当某个复选按钮被选中,它的选择状态被激活。RadioButton 部件允许用户从多个选项种选择一个。单选按钮可以添加到按钮组。……

4. 基本布局容器

列和行(Columns and Rows:列布局数据/行布局数据(ColumnLayoutData / RowLayoutData:布局数据可以控制单元格的排列(居左居中居右)alignment、间距inset margin、背景颜色background color、背景图像background image、宽width(行布局数据)、高height(列布局数据)。

②格子(Grids)格子布局数据(GridLayoutData

5. 部件属性:包括位置Alignment、背景颜色BackgroundImage、边框Border、颜色Color、长度Extent、字体Font、填充Insets和图片源ImageReferences

6. 窗体部件: 三个内建的方框部件: ContentPaneSplitPane、和 WindowPane

ContentPanes: 是最简单的方框部件.每个 ContentPane 对象一般来说被规定能拥有一个子部件,这个子部件必须是其他的方框部件. 有一个特例:允许多个浮动窗口(比如WindowPanes对象类的),不过这些浮动窗口类必须实现FloatingPane 接口marker interface。总结为:实现FloatingPane 接口的不受数量限制,没有实现接口的话只允许一个。

SplitPane分割窗体用来把一块区域regions在水平或垂直方向上划分成两块小区域。分割窗体使用分割窗体布局数据对象 SplitPaneLayoutData 管理子部件的排列情况。SplitPaneLayoutData 能够管理窗体的最大值最小值,滚动条状况,背景颜色和图像,内边距,对齐

WindowPane 部件是程序可移动窗口的全部。WindowPane只能被添加到一个内容窗体ContentPane. 它本身是一个容器窗体 PaneContainer,所以它自身可以被添加诸如 ContentPane SplitPane之类的部件。

7. 本地化

ResourceBundle resourceBundle

    = ResourceBundle.getBundle("myapp.Messages",

    ApplicationInstance.getActive().getLocale());

okButton.setText(ResourceBundle.getString("Generic.Cancel"));

cancelButton.setText(ResourceBundle.getString("Generic.Cancel"));

 

ContainerContext context = (ContainerContext)

        getContextProperty(ContainerContext.CONTEXT_PROPERTY_NAME);

    ClientProperties clientProperties

        = context.getClientProperties();

    if (clientProperties.getProperty(ClientProperties.LOCALE)

       != null) {

      setLocale((Locale)

          clientProperties.getProperty(ClientProperties.LOCALE));

    }

 

你可能感兴趣的:(Web)