> Java > java지도 시간 > Maven 프로젝트에서 FXML 파일을 찾는 방법은 무엇입니까?

Maven 프로젝트에서 FXML 파일을 찾는 방법은 무엇입니까?

Barbara Streisand
풀어 주다: 2024-11-18 21:03:02
원래의
591명이 탐색했습니다.

How to Locate FXML Files in Maven Projects?

Maven 프로젝트에서 FXML 파일 참조

JavaFX 애플리케이션에서는 다음과 같은 코드를 사용하여 리소스 폴더에서 FXML 파일을 로드하려고 합니다.

FXMLLoader.load(getClass().getResource("main.fxml"));
로그인 후 복사

리소스 폴더가 빌드 경로에 있는 동안 오류가 발생합니다. 이 문제를 해결하려면 FXML 파일을 찾는 옵션을 살펴보겠습니다.

Java/JavaFX의 일반 리소스 조회

FXML 파일 위치 조회는 Java의 일반 리소스 조회의 하위 집합이라는 점을 기억하세요. 리소스 파일(FXML 파일 포함)은 클래스 경로를 기준으로 지정됩니다. 종합 가이드는 다음을 참조하세요.

  • JavaFX 리소스 조회: https://javafx-docs.github.io/javafx-docs/javafx/2.2/resources/resource_lookup.htm
  • Eden Guide: https://edencoding.com/javafx-resource-files

사용 예

다음 코드 조각은 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"));
로그인 후 복사

FXMLLoader 사용 권장 사항

  • 정적 메서드가 아닌 새로운 FXMLLoader()를 통해 FXMLLoader를 인스턴스화합니다.
  • 인스턴스화된 FXMLLoader의 위치를 ​​확인하고 스트림에서 로드하는 대신 load()를 호출합니다.
  • getClass().getResource()를 사용하여 URL 기반 위치를 파생합니다.

IDE 및 빌드 설정

IDE 또는 빌드 도구가 FXML 파일을 리소스 디렉터리에서 빌드 출력 디렉터리로 복사하는지 확인하세요. 이를 관리하려면 Intellij 설정 지침을 참조하세요: https://stackoverflow.com/questions/25232751/how-to-convert-a-normal-java-project-in-intellij-into-a-javafx-project.

Java Jigsaw 모듈형 애플리케이션

Java Jigsaw 애플리케이션에서는 클래스 로더가 아닌 클래스에서 직접 리소스를 가져옵니다.

// Avoid:
ComboBoxStyling.class.getClassLoader().getResource("/css/styleclass.css");

// Use:
ComboBoxStyling.class.getResource("/css/styleclass.css");
로그인 후 복사

위 내용은 Maven 프로젝트에서 FXML 파일을 찾는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿