我在制作javaFX Web浏览器时遇到问题

时间:2019-11-29 11:53:49

标签: java javafx

我使用JavaFX和Scene Builder创建了Web浏览器。
但是,我一直是个例外,但是由于我的编码技巧很差,所以我无法理解鞋底中的错误。

List<CaseData> cases = (List<CaseData>) model.get("cases");
    Sheet sheet = workbook.createSheet("PIE Cases");

int rowCount = 1;
    for (CaseData pieCase : cases) {
        Row userRow = sheet.createRow(rowCount++);

if (pieCase.getActualAmountReturned() == null) {
            userRow.createCell(2).setBlank();
        } else {
            userRow.createCell(2).setCellValue(pieCase.getActualAmountReturned());
        }
if (pieCase.getChannel() == null) {
            userRow.createCell(9).setBlank();
        } else {
            userRow.createCell(9).setCellValue(pieCase.getChannel().getChannel());
        }

这是我的代码中的错误。 我认为NullPointerException是我的问题,但我无法解决。

javafx.fxml.LoadException: 
/C:/godofjava/webLast/views/MainLayout.fxml

    at javafx.fxml/javafx.fxml.FXMLLoader.constructLoadException(FXMLLoader.java:2625)
    at javafx.fxml/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2595)
    at javafx.fxml/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2466)
    at javafx.fxml/javafx.fxml.FXMLLoader.load(FXMLLoader.java:2435)
    at application.Main.start(Main.java:22)
    at 
Caused by: java.lang.reflect.InvocationTargetException
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    ... 12 more
Caused by: java.lang.NullPointerException
    at views.MainController.initialize(MainController.java:23)
    ... 24 more

它是Main.java。

package application;

import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.stage.Stage;
import javafx.scene.Scene;
import javafx.scene.layout.AnchorPane;



public class Main extends Application {

    public static void main(String[] args) {
        Application.launch(Main.class, new String[0]);
    }

    @Override
    public void start(Stage primaryStage) {
        try {
            FXMLLoader loader=new FXMLLoader();
            loader.setLocation(getClass().getResource("/views/MainLayout.fxml"));
            AnchorPane anchor=(AnchorPane)loader.load();
            Scene scene = new Scene(anchor);
            scene.getStylesheets().add(getClass().getResource("application.css").toExternalForm());
            primaryStage.setTitle("JONGWOON WEB BROWSER");
            primaryStage.setScene(scene);
            primaryStage.show();
        } catch(Exception e) {
            e.printStackTrace();
        }
    }
}

它是MainController.java。 我看到一个开发人员使用JavaFX Scene Builder制作了一个Web浏览器,因此我尽力做到了,但我一直在例外。当我删除

package views;

import javafx.fxml.FXML;
import javafx.scene.control.Button;
import javafx.scene.control.TextField;
import javafx.scene.web.WebEngine;
import javafx.scene.web.WebView;

public class MainController {
    @FXML
    private Button search;
    @FXML
    private TextField text;

    @FXML
    private WebView web;

    private WebEngine engine;


    @FXML
    private void initialize() {
        engine=web.getEngine();
        engine.load("http://www.google.com");
    }


}

这部分,我只能看到“布局”,但不起作用。 我怎么解决这个问题?请帮助我。

0 个答案:

没有答案