소개
세 가지 정적 리소스인 이미지, 오디오, 글꼴을 호출하는 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 패키지에 입력하는 것이 더 편리합니다.