在java中将对象传递给类

在java中将对象传递给类,java,oop,javafx,webview,Java,Oop,Javafx,Webview,我在JavaFx中使用webview,在我的应用程序中,我有几个面板,我想在这些面板上嵌入一个浏览器窗口。我正在努力解决面向对象的问题。你能看出我需要做什么不同吗 在我的主程序中,我有一个面板: JPanel jPanel = new JPanel(new BorderLayout()); browser browser = new browser(jPanel); browser.setVisible(true);

我在JavaFx中使用webview,在我的应用程序中,我有几个面板,我想在这些面板上嵌入一个浏览器窗口。我正在努力解决面向对象的问题。你能看出我需要做什么不同吗

在我的主程序中,我有一个面板:

            JPanel jPanel = new JPanel(new BorderLayout());
            browser browser = new browser(jPanel);
            browser.setVisible(true);
            browser.loadURL("http://www.google.com");
我在第二行有一条红色下划线

在我的浏览器类中:

import javafx.application.Platform;
import javafx.embed.swing.JFXPanel;
import javafx.scene.Scene;
import javafx.scene.web.WebEngine;
import javafx.scene.web.WebView; 
import javax.swing.*;
import java.awt.*;
import java.net.MalformedURLException;
import java.net.URL;


public class browser extends JFrame {

    private final JFXPanel jfxPanel = new JFXPanel();
    private WebEngine engine;
    //private final JPanel panel = new JPanel(new BorderLayout());


    public browser(object panel) {
        super();
        initComponents();
    }


    private void initComponents() {

        createScene();

        panel.add(jfxPanel, BorderLayout.CENTER);

        getContentPane().add(panel);

        setPreferredSize(new Dimension(1024, 600));
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        pack();

    }

    private void createScene() {

        Platform.runLater(new Runnable() {
            @Override 
            public void run() {

                WebView view = new WebView();
                engine = view.getEngine();


                jfxPanel.setScene(new Scene(view));
            }
        });
    }

    public void loadURL(final String url) {
        Platform.runLater(new Runnable() {
            @Override 
            public void run() {
                String tmp = toURL(url);

                if (tmp == null) {
                    tmp = toURL("http://" + url);
                }

                engine.load(tmp);
            }
        });
    }

    private static String toURL(String str) {
        try {
            return new URL(str).toExternalForm();
        } catch (MalformedURLException exception) {
                return null;
        }
    }


}
我得到了一个红色下划线,它说的对象,也说的面板

public browser(object panel)
变量
面板
很可能是一个对象,但类对象被定义为
对象
,而不是
对象
。导致“红线”的,也称为编译器错误

面板上出现编译器错误的原因是,它们在其他方法中不可见。您将对象
面板
传递到构造函数中,但它从未在类中设置。例如,制作一个类范围的变量,如:

private Object panel;
public browser(Object panel) {
    super();
    initComponents();
    this.panel = panel;
}

这将允许在整个类中看到您的面板对象。

我看不到您对构造函数中的参数做任何操作,而且我非常确定java中的对象是大写的。大写
对象
。而且,当您不使用该参数时,在构造函数中包含该参数是没有意义的?您从未分配给另一个变量。您可能需要比
java.lang.Object
更显式的类型。什么是
Object
,为什么要将它传递给构造函数。如果您想使用像“所有类的超类”这样的对象,它的大写形式是:
object
谢谢您的帮助。这项工作终于完成了。如果我能像我一样给每个人一个机会。