java - 自定义 CustomScrollPanel 滚动条?

标签 java javascript html css gwt

我想自定义 CustomScrollPanel 的滚动条.我想自定义滚动条,我想分别启用和禁用垂直和水平滚动条。

这是我的滚动面板:

public class MyScrollPanel extends Composite implements HasWidgets {

    public interface ScrollPanelResources extends CustomScrollPanel.Resources
    {
        @Override
        @Source( { "test/web/client/widgets/ScrollPanel.css", CustomScrollPanel.Style.DEFAULT_CSS } )
        CustomScrollPanel.Style customScrollPanelStyle();
    }

    public interface HorizontalResources extends NativeHorizontalScrollbar.Resources
    {
        @Override
        @Source( { "test/web/client/widgets/HorizontalScrollbar.css", NativeHorizontalScrollbar.StyleTransparant.DEFAULT_CSS } )
        NativeHorizontalScrollbar.Style nativeHorizontalScrollbarStyle();
    }

    public interface VerticalResources extends NativeVerticalScrollbar.Resources
    {
        @Override
        @Source( { "test/web/client/widgets/VerticalScrollbar.css", NativeVerticalScrollbar.StyleTransparant.DEFAULT_CSS } )
        NativeVerticalScrollbar.Style nativeVerticalScrollbarStyle();
    }

    public interface Resources extends ClientBundle {

        @Source({"test/web/client/widgets/MyScrollPanel.css"})
        Css css();
    }

    public interface Css extends CssResource, AppCss {

        String resizeLayoutPanel();
        String customScrollPanel();

    }

    Resources resources;


    private ResizeLayoutPanel resizeLayoutPanel;
    private CustomScrollPanel customScrollPanel;


    public MyScrollPanel() {
        resources = GWT.create(Resources.class);
        resources.css().ensureInjected();
        resizeLayoutPanel = new ResizeLayoutPanel();
        resizeLayoutPanel.setStyleName(resources.css().resizeLayoutPanel());


        customScrollPanel = new CustomScrollPanel((MyScrollPanel.ScrollPanelResources) GWT.create(MyScrollPanel.ScrollPanelResources.class));
        customScrollPanel.setHorizontalScrollbar(new NativeHorizontalScrollbar((HorizontalResources) GWT.create(HorizontalResources.class)),
        AbstractNativeScrollbar.getNativeScrollbarHeight());
        customScrollPanel.setVerticalScrollbar(new NativeVerticalScrollbar((VerticalResources) GWT.create(VerticalResources.class)),
        AbstractNativeScrollbar.getNativeScrollbarWidth());

        customScrollPanel.addStyleName(resources.css().customScrollPanel());


        resizeLayoutPanel.add(customScrollPanel);
        initWidget(resizeLayoutPanel);
    }


    @Override
    public void add(Widget w) {
        customScrollPanel.add(w);
    }


    @Override
    public void clear() {
        customScrollPanel.clear();
    }


    @Override
    public Iterator<Widget> iterator() {
        return customScrollPanel.iterator();
    }


    @Override
    public boolean remove(Widget w) {
        return customScrollPanel.remove(w);
    }




}

我找到了这篇文章 GWT CustomScrollPanel example但这并没有解决问题。

如何自定义滚动条以及分别启用和禁用垂直和水平滚动条?

如何设置自定义滚动条的样式?

最佳答案

CustomScrollPanel 提供了两种方法:

.getHorizontalScrollbar()
.getVerticalScrollbar()

然后您可以在必要时显示/隐藏它们,或应用您需要的任何 CSS。

关于java - 自定义 CustomScrollPanel 滚动条?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21577522/

相关文章:

javascript - 我可以同时热模块重新加载服务器(.NET Core)和客户端(Angular)吗?

javascript - 如何重新注册(或删除)现有的 Mongoose 架构/模型?

html - 活跃的最后一次悬停

javascript - 计算两个移动元素之间的距离

html - 如何使用行样式修复边界半径?

java - 我对子类有一些问题,如何使用 super.method()

javascript - Electron 预加载函数而不是外部文件?

java - 这个过度渴望的加载器对象是代理模式实现的示例吗?

java - 在java web应用程序中使用请求对象来识别客户端机器操作系统

java - System.out.print() 读取 Scanner 错误