加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

scala – 如何在JavaFX WebView中隐藏滚动条

发布时间:2020-12-16 09:24:14 所属栏目:安全 来源:网络整理
导读:我正在尝试删除javafx webview中的滚动条. 在论坛上搜索,建议是让它们不可见,如下所示: browser.getChildrenUnmodifiable().addListener(new ListChangeListenerNode() { @Override public void onChanged(Change? extends Node change) { SetNode deadSeaS
我正在尝试删除javafx webview中的滚动条.
在论坛上搜索,建议是让它们不可见,如下所示:

browser.getChildrenUnmodifiable().addListener(new ListChangeListener<Node>() {
    @Override public void onChanged(Change<? extends Node> change) {
        Set<Node> deadSeaScrolls = browser.lookupAll(".scroll-bar");
        for (Node scroll : deadSeaScrolls) {
            scroll.setVisible(false);
        }
    }
})

但是,我收到以下错误:

“trait ListChangeListener是抽象的;无法实例化”

我能理解为什么它失败了,但是又一次,为什么人们使用这个代码成功了?我正在使用Eclipse,代码被Scala代码包围.

谢谢!
小号

解决方法

我写了你引用的滚动条隐藏代码和 posted it to a forum.

我再次尝试使用WinXPsp3,JavaFX 2.2b13,JDK7u6b14ea,它仍然适用于我.

我从未尝试过从Scala访问代码,因此您可能遇到了一些Java< - > Scala互操作性问题. Java没有特征,因此您收到的错误会显示与Scala相关.我在你的问题中添加了一个Scala标签,所以也许有Scala专业知识的人可以提供帮助.

这是一个简短的,可编译的测试应用程序,我用来重新检查功能.

import java.util.Set;
import javafx.application.Application;
import javafx.collections.ListChangeListener;
import javafx.collections.ListChangeListener.Change;
import javafx.scene.*;
import javafx.scene.web.WebView;
import javafx.stage.Stage;

// demos showing a webview which does not visibly display scrollbars.
public class NoScrollWebView extends Application {
  public static void main(String[] args) { launch(args); }
  @Override public void start(Stage primaryStage) {
    // show a doc in webview.
    final WebView webView = new WebView();
    webView.getEngine().load("http://docs.oracle.com/javafx/2/get_started/jfxpub-get_started.htm");
    primaryStage.setScene(new Scene(webView));
    primaryStage.show();

    // hide webview scrollbars whenever they appear.
    webView.getChildrenUnmodifiable().addListener(new ListChangeListener<Node>() {
      @Override public void onChanged(Change<? extends Node> change) {
        Set<Node> deadSeaScrolls = webView.lookupAll(".scroll-bar");
        for (Node scroll : deadSeaScrolls) {
          scroll.setVisible(false);
        }
      }
    });
  }
}

这里最好的解决方案可能是提供一个新的WebView控件外观,它没有任何控件 – 但在WebView控件开源之前可能很难.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读