我在使用JavaFx和我的應用程序中使用webview我有幾個面板,我想嵌入瀏覽器窗口。我正在苦於面向對象的位。你能看到我需要做不同的事情嗎?將對象傳遞給java中的類
在我的主要程序我有這樣一個小組:
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;
}
}
}
我得到一個紅色下劃線,它說對象,也無論它說面板。
我沒有看到你在構造函數中對參數做任何事情,而且我很確定java中的Object是大寫的。 –
大寫'對象'。另外,當你不使用它時,在構造函數中有沒有這個參數是沒有意義的?你永遠不會分配給另一個變量。你可能想要一個比java.lang.Object更明確的類型。 –
什麼是「對象」,爲什麼你將它傳遞給構造函數。如果你想使用像「所有類的超類」對象的對象,它是大寫:'對象' – fabian