JavaFX 애플리케이션에서는 다음과 같은 코드를 사용하여 리소스 폴더에서 FXML 파일을 로드하려고 합니다.
FXMLLoader.load(getClass().getResource("main.fxml"));
리소스 폴더가 빌드 경로에 있는 동안 오류가 발생합니다. 이 문제를 해결하려면 FXML 파일을 찾는 옵션을 살펴보겠습니다.
FXML 파일 위치 조회는 Java의 일반 리소스 조회의 하위 집합이라는 점을 기억하세요. 리소스 파일(FXML 파일 포함)은 클래스 경로를 기준으로 지정됩니다. 종합 가이드는 다음을 참조하세요.
다음 코드 조각은 FXML 파일 로드를 보여줍니다.
FXMLLoader loader = new FXMLLoader(); loader.setLocation(getClass().getResource("/main.fxml")); Parent content = loader.load();
리소스 폴더 내 FXML 파일 위치를 지정하는 데는 여러 가지 옵션이 있습니다.
1. 모든 FXML 파일을 src/main/resources에 배치합니다:
loader.setLocation(getClass().getResource("/main.fxml"));
2. FXML 파일을 src/main/resources/fxml에 배치합니다:
loader.setLocation(getClass().getResource("/fxml/main.fxml"));
3. 해당 리소스 디렉터리에 FXML 파일을 배치합니다.
FXML을 로드하는 클래스가 src/main/java/com/mycompany/myapp에 있다고 가정하면 FXML 파일을 다음 위치에 배치할 수 있습니다.
src/main/resources/com/mycompany/myapp/main.fxml
다음을 사용하여 로드합니다.
loader.setLocation(getClass().getResource("main.fxml"));
IDE 또는 빌드 도구가 FXML 파일을 리소스 디렉터리에서 빌드 출력 디렉터리로 복사하는지 확인하세요. 이를 관리하려면 Intellij 설정 지침을 참조하세요: https://stackoverflow.com/questions/25232751/how-to-convert-a-normal-java-project-in-intellij-into-a-javafx-project.
Java Jigsaw 애플리케이션에서는 클래스 로더가 아닌 클래스에서 직접 리소스를 가져옵니다.
// Avoid: ComboBoxStyling.class.getClassLoader().getResource("/css/styleclass.css"); // Use: ComboBoxStyling.class.getResource("/css/styleclass.css");
위 내용은 Maven 프로젝트에서 FXML 파일을 찾는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!