小编mih*_*iho的帖子

错误或特征:Kotlin允许在继承中将'val'更改为'var'

我刚开始探索Kotlin语言.我正在努力进行遗传,变异和副作用.

如果我宣布一个特质Aval x和覆盖xAImpl它可以覆盖它var(见下面的代码).令人惊讶的是,该print()方法A受到重新分配的影响,x即使它x是一个值A.这是一个错误还是一个功能?

码:

trait A {
  fun print() {
    println("A.x = $x")
  }

  val x : Int;
}

class AImpl(x : Int) : A {
  override var x = x; // seems like x can be overriden as `var`
}

fun main(args: Array<String>) {

  val a = AImpl(2)

  a.print() // A.x = 2

  a.x = 3; // x can …
Run Code Online (Sandbox Code Playgroud)

inheritance side-effects kotlin

18
推荐指数
1
解决办法
3294
查看次数

如何设置/记住JavaFX 8 WebView中的滚动条拇指位置?

我有一个关于JavaFX 8 WebView及其滚动条的问题.

我想重新加载HTML文档并记住当前的垂直滚动条位置.不幸的是,每当我重新加载文档时,滚动条就会移动到其初始位置.如何强制滚动条记住它的位置?

我试图解决这个问题:

通过WebView#lookup(String id)(参见1),可以访问ScrollBarWebView实例的垂直和水平实例.这允许我保持当前滚动条值,即拇指位置通过ScrollBar#getValue().不幸的是,设置值via ScrollBar#setValue(double value)不会产生预期的效果.滚动条拇指位置保持不变.

此外,我怀疑JavaFX滚动条没有呈现.相反,似乎显示了具有类似样式的WebKit滚动条.至少通过Scenic View进行的简短场景图分析给了我这样的印象.

这是一个JavaFX错误吗?有没有办法实现理想的行为?

这是一个演示setValue()的示例程序- 问题:

import java.util.Set;
import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.geometry.Orientation;
import javafx.geometry.Pos;
import javafx.scene.Node;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.ScrollBar;
import javafx.scene.layout.VBox;
import javafx.scene.web.WebView;
import javafx.stage.Stage;

/**
 * ScrollBar bug in JavaFX 8 WebView?
 * 
 * @author Michael Hoffer &lt;info@michaelhoffer.de&gt;
 */
public class WebViewAndItsScrollBars extends Application {

    @Override
    public void start(Stage primaryStage) {

        // …
Run Code Online (Sandbox Code Playgroud)

java webkit webview javafx-8

4
推荐指数
1
解决办法
1606
查看次数

标签 统计

inheritance ×1

java ×1

javafx-8 ×1

kotlin ×1

side-effects ×1

webkit ×1

webview ×1