2009-04-23 5 views
8

설정 파일이 .form 파일에 갇혀있는 많은 양식 창이있는 상당한 규모의 Java GUI 응용 프로그램을 만들었습니다. 이 .form 파일을 내가 수정할 수있는 실제 Java 소스 코드로 변환하거나 리팩터링하는 방법이 있는지 궁금하다.Java GUI Builder .form 파일을 소스 코드로 변환 하시겠습니까?

GUI는 Netbeans 6.5를 사용하여 만들어졌습니다.

+0

.form 파일은 Netbeans에 고유하며 .java 파일에는 창에 대한 전체 소스 코드가 있다고 생각했습니다. 이게 정확하지 않니? 자바 파일을 편집 할 수 없습니까? – kazanaki

답변

6

".form"파일은 GUI 구성 요소의 위치를 ​​추적하기 위해 Netbeans GUI 빌더에서만 사용됩니다. 디자인 뷰에 구성 요소를 추가하면 Netbeans은 실제 원본 (.java) 파일을 자동으로 업데이트합니다. 은 실제로 이러한 .java 파일을 직접 수정하여 단추의 레이블을 변경하지만, Netbeans에서 수행하면 .form 파일을 사용하여 원본 파일을 자동으로 재생성하여 수동 변경을 무효화합니다.

내 경험상 .java 파일을 수동으로 수정하기로 결정하면 .form 파일이 동기화되지 않아 더 이상 Netbeans GUI 빌더를 올바르게 사용할 수 없습니다.

4

kazanaki가 맞으면 생성 된 java 파일을 수정할 수는 있지만 그 결과 나타나는 .java 파일은 크고 지저분하기 때문에 악명이 높습니다. 또한 파일이 특정 방식으로 물건을 가질 것으로 예상하기 때문에 매트리스를 쓸모 없게 만들지 않고도 (생성 된 .java 파일의 주석에 명시된 것처럼) 일부 내용을 변경할 수 없습니다. 즉, 마티스의 발가락을 밟지 않으려면 조심스럽게 코드를 작성할 수 있으며 코드가 좋지 않을 것입니다.

무법자도 마찬가지입니다. 이미 마티스의 퍼뷰에있는 내용을 변경하면 덮어 씁니다. matisse 외부에서 변경 한 사항은 matisse가 코드를 생성하는 데 사용하는 xml이 포함하는 요소 외부에 있어야합니다.

나는 이런 종류의 시도를 제한된 성공으로 시도하고 마침내 방금이 미친 두통을 피하기 위해 인터페이스를 다시 작성했습니다.

1

소스를 편집 할 수 있습니다. 해결책을 발견했습니다. 문제는 제가 GUI 빌더에서 "AbsoluteLayout"을 사용하고 있다는 것입니다. Netbeans은 .form 파일 내부에 숨겨진 AbsoluteLayout 클래스를 생성하고있었습니다. .form 파일을 삭제 한 경우 프로젝트가 더 이상 빌드되지 않습니다. 솔루션은 "FreeForm"레이아웃으로 양식을 변경 한 다음 .form 파일을 삭제하고 GUI 빌더 주석을 제거 할 수있었습니다.

도움 주셔서 감사합니다. 나는 둘 다 +1합니다.