我已经阅读并尝试了许多相关问题,最后在这里发布了一个问题。我正在尝试从登录窗口打开软件的主窗口。登录类是具有 main 方法的入口点。一切正常,直到我没有mainWindowController在mainWindow.fxml文件中声明。它给loadException
javafx.fxml.LoadException:
file:/C:/Users/PIU-PDMA/Documents/GitHub/ExamSystem/dist/run1388756810/ExamSoft.jar!/view/mainWindow.fxml:10
这是我loginController的方法(单击登录按钮时的方法)
@FXML
void makeLogin(ActionEvent event) {
FXMLLoader fXMLLoader;
Parent root;
Scene scene;
try {
root = FXMLLoader.load(getClass().getResource("/view/mainWindow.fxml"));
Stage stage = new Stage();
stage.setTitle("Main Window");
stage.setScene(new Scene(root));
stage.setMaximized(true);
stage.show();
} catch (Exception e) {
Logger logger = Logger.getLogger(getClass().getName());
logger.log(Level.SEVERE, "Failed to create new Window.", e);
JOptionPane.showMessageDialog(null, "Error ");
}
}
根据我的研究,如果我们使用getResourcemethod ,我们应该使用前导斜线,如果我们使用getClassLoader我们不会在路径中使用前导斜线
getClass().getResource("/view/login.fxml")); // correct with slash (/)
getClass().getClassLoader().getResource("view/login.fxml")); // correct without slash (/)
当我按下ctlr并单击 fxml 文件中的控制器链接时,它会将我带到正确的控制器文件。所以我不明白为什么我会面临这个问题。任何帮助,将不胜感激。这是我的结构
控制器类
class MainWindowController {
@FXML
private AnchorPane main_layout;
@FXML
void pinWindow(ActionEvent event) {
Stage s = (Stage) main_layout.getScene().getWindow();
s.setAlwaysOnTop(true);
}
}
RISEBY
相关分类