我使用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");
}
}
这部分,我只能看到“布局”,但不起作用。 我怎么解决这个问题?请帮助我。