>  기사  >  Java  >  Java 양식 프로그램은 정적 자원을 호출합니다.

Java 양식 프로그램은 정적 자원을 호출합니다.

伊谢尔伦
伊谢尔伦원래의
2016-12-05 11:41:141402검색

소개
세 가지 정적 리소스인 이미지, 오디오, 글꼴을 호출하는 JAVA 양식 프로그램용 코드를 소개합니다. 이 방법을 사용하여 정적 리소스를 호출하면 정적 리소스를 JAR 패키지로 직접 패키징할 수 있습니다.

오디오 통화 중 Eclipse로 인해 오류가 보고될 수 있습니다. 해결 방법은 sun.audio.AudioPlayer(또는 기타 파일) 가져오기 관련 문제를 참조하세요.

데모

여기는 JFrame의 외관을 수정하기 위해 캡슐화한 클래스입니다. 여기에 사용된 메소드는 다음에 게시됩니다.

함수 정의
클래스(JFrame에서 상속받은 클래스)에서 메소드를 정의하지만, 클래스 간에 호출되도록 정적 메소드로 설정할 수는 없습니다.

/**
 * 根据相对路径加载图片
 * @param path: 图片的相对路径
 * @return: 获取到的图片对象
 */public Image getImagePath(String path) {  
    Image image=null;  
    InputStream is = (InputStream) this.getClass().getClassLoader().getResourceAsStream(path);    try {
        image=ImageIO.read(is);
    } catch (IOException e) {
        e.printStackTrace();
    }    return image;  
} 
/**
 * 根据相对路径加载音频
 * @param path: 音频文件的相对路径
 * @return: 获取到的音频对象
 */public AudioStream getAudioPath(String resource){  
    InputStream is = (InputStream) this.getClass().getClassLoader().getResourceAsStream(resource);     
    AudioStream as = null;    try {
        as = new AudioStream(is);
    } catch (IOException e) {
        e.printStackTrace();
    }    return as;  
} 
/**
 * 根据相对路径加载字体
 * @param path: 字体文件的相对路径
 * @return: 获取到的字体对象
 */public Font getDefinedFont(String path) {  
    if (definedFont == null) {  
        InputStream is = null;  
        BufferedInputStream bis = null;  
        try {  
            is = (InputStream) this.getClass().getClassLoader().getResourceAsStream(path);            bis = new BufferedInputStream(is);  
            definedFont = Font.createFont(Font.TRUETYPE_FONT, bis);  
            definedFont = definedFont.deriveFont(25f);  
            definedFont = definedFont.deriveFont(Font.BOLD);
        } catch (FontFormatException e) {  
            e.printStackTrace();  
        } catch (IOException e) {  
            e.printStackTrace();  
        } finally {  
            try {  
                 if (null != bis) {  
                    bis.close();  
                 }  
                 if (null != is) {  
                    is.close();  
                 }  
            } catch (IOException e) {  
                e.printStackTrace();  
            }  
        }  
    }  
    return definedFont;  
}

호출 방법

/*图片*/logo = getImagePath("resource/image/logo.png");
logoIcon = new ImageIcon(logo);
logoLabel = new JLabel(logoIcon);

/*字体*/titel = new JLabel(name);
titel.setFont(getDefinedFont("resource/font/叶根友毛笔特色简体.ttf"));

/*音乐*/backMusic = getAudioPath("resource/music/竹苑情歌.au");
AudioPlayer.player.start(backMusic);  /*播放背景音乐*/

txt에 대하여
단순히 읽는 것이라면 위의 방법을 사용하여 JAR 패키지에 들어가는 것을 고려해 볼 수 있지만, TXT를 수정해야 하는 경우 파일의 내용은 더 이상 JAR에 들어갈 수 없다. 조작 방법은 파일을 조작해야 하는 소스코드에 경로 없이 파일명을 직접 작성한 뒤, 같은 디렉터리에 저장하는 것이다. JAR 파일로 구현된 파일 작업입니다. 물론 다른 리소스 파일도 이 방법으로 액세스할 수 있지만 특정 경우에는 리소스 파일을 JAR 패키지에 입력하는 것이 더 편리합니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.