2011-02-04 2 views
1

eclipse 플러그인에서 작업 중이며 글꼴을 응용 프로그램에 자원으로로드하려고하므로 프로젝트 탐색기 트리에 나타납니다.SWT의 Display.loadFont API를 사용하여 설치된 글꼴을 제거하십시오.

SWT에는 지정된 파일에서 글꼴을로드하는 Display 클래스의 loadFont 메서드가 있으므로 응용 프로그램의 사용 가능한 글꼴 목록에 나타납니다. 나는이 방법을 사용하고있다.

그러나 나는 다음과 같은 예외 무엇입니까 프로젝트 탐색기에서 글꼴을 삭제하려고 할 때 :

org.eclipse.core.internal.resources.ResourceException : 삭제 자원

동안 발생 문제

나는 다음 한 질문 :

  1. 그것은 SWT에서 응용 프로그램에서 글꼴을 언로드 할 수 있습니까?
  2. 처리 방법이 있습니까?
  3. 이클립스에서 사용자 지정 글꼴을 처리하는 또 다른 시나리오가 있습니까?

답변

1

FontData 형식의 클래스는 폰트에 대한 정보가 약간 포함되어 있으므로 처리 할 필요가 없습니다. 실제 Font 객체를 만든 다음 yes로 만들면 .dispose()를 호출하고 해당 리소스를 확보하는 것은 사용자의 책임입니다.

SWT와 함께 JFace를 사용하는 경우 글꼴 리소스를 추적하는 데 도움이되는 FontRegistry를 살펴볼 수 있습니다.

javadocs를 연결하지 않는 것에 대해 사과드립니다. SWT 문서는 지금 당장로드되지 않습니다. FontData와 Font의 차이점을 설명하는 a small example of FontRegistry usage을 찾았습니다.

+0

답장을 보내 주셔서 감사합니다. 실제로는 응용 프로그램 글꼴 목록에서 글꼴을 제거하는 데 관심이 있습니다. 디스플레이 클래스의 loadFont 메소드를 사용하여 글꼴을 파일의 응용 프로그램 목록으로로드 할 수 있습니다. 글꼴을 "언로드"할 수 있습니까? 글꼴 로딩의 예는 http://firstclassthoughts.co.uk/swt/fonts_in_swt_code.html – deephace

+0

'shell.getDisplay(). loadFont (fontFileName);'- SWT에서 좀 녹슬었지만 나는 이것을 생각할 수있다. 단지 글꼴을 이름으로 사용할 수있게하지만 실제로는 글꼴을로드하지 않습니다. 그런 다음 이탤릭체 또는 로마자와 같은 이름 및 스타일 옵션으로 글꼴을 참조하는 FontData 객체를 만들 수 있습니다. 연결된 예제에서 실제로 글꼴은이 시점에서로드됩니다 :'return new Font (shell.getDisplay(), Amiga Forever Pro2 ", fontSize, SWT.NORMAL);'당신은 그 Font 객체에 대한 책임이 있습니다. 더 이상 필요없는 .dispose()를 호출하면 그 시점에서 언로드됩니다. – ZoFreX

+0

답장을 보내 주셔서 다시 한 번 감사드립니다! 어쩌면 내 질문에 너무 혼란스러운 방식으로 물어, 그래서 내가 여기 다른 방법으로 요청했습니다 : http://stackoverflow.com/questions/4919217/how-to-delete-font-resource-from-eclipse-plugin – deephace

관련 문제