2012-07-19 5 views
2

나는 SynthLookAndFeel을 xml 파일과 함께 사용하는 방법, 여기서 xml 파일 경로는 getResourceAsStream 메소드를 사용하여 파일을로드합니까? 내 demo.xml은 다음 아니한 경우

SynthLookAndFeel laf = new SynthLookAndFeel(); 
laf.load(MyJSlider.class.getResourceAsStream("/ui/demo.xml"), MyJSlider.class);  
//laf.load(new URL("file:///var/tmp/demo.xml")); 

을 사용하고 있습니다 :

run-single: 
Uncaught error fetching image: 
java.lang.NullPointerException 
    at sun.awt.image.URLImageSource.getConnection(URLImageSource.java:115) 
    at sun.awt.image.URLImageSource.getDecoder(URLImageSource.java:125) 
    at sun.awt.image.InputStreamImageSource.doFetch(InputStreamImageSource.java:263) 
    at sun.awt.image.ImageFetcher.fetchloop(ImageFetcher.java:205) 
    at sun.awt.image.ImageFetcher.run(ImageFetcher.java:169) 
BUILD STOPPED (total time: 9 seconds) 

을 방지하기 위해 적은 위험을 가지고 :

<style id="SliderTrackStyle"> 
    <opaque value="TRUE"/> 
    <state> 
     <imagePainter method="SliderTrackBackground" path="/var/tmp/JavaUnitTest/src/image/menu/bg.jpg" sourceInsets="0 0 0 0" /> 
    </state> 
</style> 
<bind style="SliderTrackStyle" type="region" key="SliderTrack" /> 

는 오류가 발생합니다.

어떻게하면 path=Menu.class.getResourceAsStream("/image/menu/bg.jpg")처럼 사용할 수 있습니까? 예를 들어 정적 경로를 사용하지 않으려합니다.

후속 :

enter image description here

+1

[프로젝트에 이미지를 추가하는 방법] (http://stackoverflow.com/a/9866659/1057230) 및이 [답변] (http : // stackoverflow. co.kr/a/11372350/1057230) 내 –

답변

3

당신은 Advanced Synth에 좋은 예를 찾을 수 있습니다.

당신이 예에서 볼 수있다 :

SynthLookAndFeel synth = new SynthLookAndFeel(); 
synth.load(SynthFrame.class.getResourceAsStream("demo.xml"), SynthFrame.class); 
UIManager.setLookAndFeel(synth); 

그리고 demo.synth 패키지 demo.xml 생활이 XML에 포함 된 SynthFrame 클래스의 같은 :

<imageIcon id="check_off" path="images/checkbox_off.png"/> 

경우 demo.synth.images 패키지 checkbox_off.png 삶 .

+0

감사합니다. 좋은 기사. 나는 또한 이것의 더 나은 그림을 위해 나의 후속 섹션을 수정했다. – YumYumYum

3
  1. , 특히 @trashgod 응답 할 to check하시기 바랍니다는 선사 시대와 Synth 일반

  2. Nimbus이 similair 가지고 있지만, 큰 코드 BasicXxxUI

    에 대한 해결 방법
  3. 차라리 사용 Nimbus Look and Feel 것 기본적인 물건을 보여줍니다 GUI, aaaa 및 몇 가지 버그에 관한 문제 또한,

  4. 또한, 예를 들어에 대한 파일

    의 전체 경로를 전달하여 XML 파일을 추가 할 수 있습니다

1

fews 큰 해킹는 (일반 Synt 기준) 방법과 우리 주위에 가장 쉬운 방법이 될 수 있습니다

SynthLookAndFeel laf = new SynthLookAndFeel(); 
laf.load(new URL("file:///D:/Demo/src/example1.xml")); 
UIManager.setLookAndFeel(laf); 

저에게 적합합니다. 응용 프로그램에 사용해보십시오