GWT - ScrollPanel 组件



介绍

ScrollPanel 组件表示一个简单的面板,它将内容包装在可滚动区域中。

类声明

以下是 com.google.gwt.user.client.ui.ScrollPanel 类的声明:

public class ScrollPanel
   extends SimplePanel
      implements SourcesScrollEvents, HasScrollHandlers,
         RequiresResize, ProvidesResize

类构造函数

序号 构造函数 & 描述
1

ScrollPanel()

创建一个空的滚动面板。

2

ScrollPanel(Widget child)

使用给定的子组件创建一个新的滚动面板。

类方法

序号 函数名称 & 描述
1

HandlerRegistration addScrollHandler(ScrollHandler handler)

添加一个 ScrollEvent 处理程序。

2

void addScrollListener(ScrollListener listener)

已弃用。请改用 addScrollHandler(com.google.gwt.event.dom.client.ScrollHandler)

3

void ensureVisible(UIObject item)

通过调整面板的滚动位置,确保指定的项目可见。

4

protected Element getContainerElement()

重写此方法以指定面板子组件的容器元素,而不是根元素。

5

int getHorizontalScrollPosition()

获取水平滚动位置。

6

int getScrollPosition()

获取垂直滚动位置。

7

void onResize()

每当实现者的尺寸被修改时,必须调用此方法。

8

void removeScrollListener(ScrollListener listener)

已弃用。请改用 addScrollHandler(com.google.gwt.event.dom.client.ScrollHandler) 返回的对象上的 HandlerRegistration.removeHandler() 方法。

9

void scrollToBottom()

滚动到此面板的底部。

10

void scrollToLeft()

滚动到此面板的最左边。

11

void scrollToRight()

滚动到此面板的最右边。

12

void scrollToTop()

滚动到此面板的顶部。

13

void setAlwaysShowScrollBars(boolean alwaysShow)

设置此面板是否始终显示其滚动条,或者仅在必要时显示。

14

void setHeight(java.lang.String height)

设置对象的高度。

15

void setHorizontalScrollPosition(int position)

设置水平滚动位置。

16

void setScrollPosition(int position)

设置垂直滚动位置。

17

void setSize(java.lang.String width, java.lang.String height)

设置对象的大小。

18

void setWidth(java.lang.String width)

设置对象宽度。

继承的方法

此类继承自以下类的方法:

  • com.google.gwt.user.client.ui.UIObject

  • com.google.gwt.user.client.ui.Widget

  • com.google.gwt.user.client.ui.Panel

  • com.google.gwt.user.client.ui.SimplePanel

  • java.lang.Object

ScrollPanel 组件示例

此示例将引导您完成简单的步骤,以演示如何在 GWT 中使用 ScrollPanel 组件。请按照以下步骤更新我们在GWT - 创建应用章节中创建的 GWT 应用程序:

步骤 描述
1 按照GWT - 创建应用章节中的说明,创建一个名为HelloWorld的项目,放在com.tutorialspoint包下。
2 修改HelloWorld.gwt.xmlHelloWorld.cssHelloWorld.htmlHelloWorld.java,如下所述。保持其余文件不变。
3 编译并运行应用程序以验证已实现逻辑的结果。

以下是修改后的模块描述符src/com.tutorialspoint/HelloWorld.gwt.xml的内容。

<?xml version = "1.0" encoding = "UTF-8"?>
<module rename-to = 'helloworld'>
   <!-- Inherit the core Web Toolkit stuff.                        -->
   <inherits name = 'com.google.gwt.user.User'/>

   <!-- Inherit the default GWT style sheet.                       -->
   <inherits name = 'com.google.gwt.user.theme.clean.Clean'/>

   <!-- Specify the app entry point class.                         -->
   <entry-point class = 'com.tutorialspoint.client.HelloWorld'/>

   <!-- Specify the paths for translatable code                    -->
   <source path = 'client'/>
   <source path = 'shared'/>

</module>

以下是修改后的样式表文件war/HelloWorld.css的内容。

body {
   text-align: center;
   font-family: verdana, sans-serif;
}

h1 {
   font-size: 2em;
   font-weight: bold;
   color: #777777;
   margin: 40px 0px 70px;
   text-align: center;
}

以下是修改后的 HTML 宿主文件war/HelloWorld.html的内容。

<html>
   <head>
      <title>Hello World</title>
      <link rel = "stylesheet" href = "HelloWorld.css"/>
      <script language = "javascript" src = "helloworld/helloworld.nocache.js">
      </script>
   </head>

   <body>
      <h1>ScrollPanel Widget Demonstration</h1>
      <div id = "gwtContainer"></div>
   </body>
</html>

让我们来看一下 Java 文件src/com.tutorialspoint/HelloWorld.java的内容,它将演示 ScrollPanel 组件的使用。

package com.tutorialspoint.client;

import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.user.client.ui.DecoratorPanel;
import com.google.gwt.user.client.ui.HTML;
import com.google.gwt.user.client.ui.RootPanel;
import com.google.gwt.user.client.ui.ScrollPanel;

public class HelloWorld implements EntryPoint {

   public void onModuleLoad() {
      // Create scrollable text 
      HTML contents = new HTML("This is a ScrollPanel."
         +" By putting some fairly large contents in the middle"
         +" and setting its size explicitly, it becomes a scrollable area"
         +" within the page, but without requiring the use of an IFRAME."
         +" Here's quite a bit more meaningless text that will serve primarily"
         +" to make this thing scroll off the bottom of its visible area."
         +" Otherwise, you might have to make it really, really"
         +" small in order to see the nifty scroll bars!");

      //create scrollpanel with content
      ScrollPanel scrollPanel = new ScrollPanel(contents);
      scrollPanel.setSize("400px", "100px");

      DecoratorPanel decoratorPanel = new DecoratorPanel();

      decoratorPanel.add(scrollPanel);

      // Add the widgets to the root panel.
      RootPanel.get().add(decoratorPanel);
   }  
}

完成所有更改后,让我们像在GWT - 创建应用章节中一样,在开发模式下编译并运行应用程序。如果应用程序一切正常,将会产生以下结果:

GWT ScrollPanel Widget
gwt_layout_panels.htm
广告
© . All rights reserved.