0

我正在尝试参考 WebEngine

public class ClientArea implements Initializable {

public WebEngine engine;

    @Override
    public void initialize(URL url, ResourceBundle rb) {

        engine = browser.getEngine();
        engine.load("about:blank");
    }
}

对于同一文件中的类 (ClientArea.java)

private static class SearchBox extends Region {

        private WebEngine engine; // private or public

        private TextField insertU;
        private Button refreshButton;
        private Button stopButton;
        private Button backButton;
        private Button forwardButton;
        public Button voltarButton;

        public SearchBox() {
        }
}

但这不起作用,那会是什么?

4

1 回答 1

1

可能我不明白你的问题。您想从嵌套类 ( ) 访问顶级类 ( SearchBox) 的字段 ( )。engineClientArea

如果嵌套类不是 static很容易。在这种情况下,内部类保持ClientArea.this对外部类的引用 (),并且可以访问其字段和方法。

public class ClientArea implements Initializable {
    public WebEngine engine;

    @Override
    public void initialize(URL url, ResourceBundle rb) {
        engine = browser.getEngine();
        engine.load("about:blank");
    }

    private class SearchBox extends Region {
        public SearchBox() {
            System.err.println(engine);
        }

        private ClientArea getClientArea() {
            return ClientArea.this;
        }

        private WebEngine getWebEngine() {
            return engine;
        }
     }
}

看看这个关于静态嵌套类和内部类之间区别的答案。

关于嵌套类的 java 教程。

于 2013-03-22T08:50:14.963 回答