私はJavaFxでwebviewを使用しています。私のアプリケーションでは、ブラウザウィンドウを埋め込むパネルがいくつかあります。私はオブジェクト指向のビットで苦労しています。あなたは私が違うやり方をする必要があるのか分かりますか?Javaのクラスにオブジェクトを渡す
1枚のパネルのために、私はこれを持って私のメインプログラムで:私は2番目の行に赤い下線を取得
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'よりも明示的な型を望んでいます。 –
'オブジェクト'とは何ですか?なぜそれをコンストラクタに渡しますか? "すべてのクラスのスーパークラス"オブジェクトのようなオブジェクトを使用したい場合は、大文字です: 'Object' – fabian