Heim  >  Artikel  >  Java  >  Das Java-Formularprogramm ruft statische Ressourcen auf

Das Java-Formularprogramm ruft statische Ressourcen auf

伊谢尔伦
伊谢尔伦Original
2016-12-05 11:41:141361Durchsuche

Einführung
Stellt den Code für das JAVA-Formularprogramm zum Aufrufen von drei statischen Ressourcen vor: Bilder, Audios und Schriftarten. Mit dieser Methode zum Aufrufen statischer Ressourcen können Sie die statischen Ressourcen direkt in ein JAR-Paket packen.

Im Audioanruf wird möglicherweise ein Fehler aufgrund von Eclipse gemeldet. Lösungen finden Sie im Problem zum Importieren von sun.audio.AudioPlayer (oder anderen Dateien)

Demo

Hier ist es eine Klasse, die ich gekapselt habe, um das Erscheinungsbild von JFrame zu ändern. Die darin verwendete Methode ist die, die als Nächstes veröffentlicht wird.

Funktionsdefinition
Definieren Sie eine Methode in einer Klasse (eine von JFrame geerbte Klasse). Leider kann sie nicht als statische Methode festgelegt werden, die klassenübergreifend aufgerufen werden kann.

/**
 * 根据相对路径加载图片
 * @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;  
}

Aufrufmethode

/*图片*/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);  /*播放背景音乐*/

Über txt
Wenn es sich nur um das Lesen handelt, können Sie die obige Methode zum Eingeben des JAR-Pakets in Betracht ziehen, wenn dabei jedoch TXT geändert werden muss Der Inhalt der Datei kann nicht mehr in die JAR eingegeben werden. Die Vorgehensweise besteht darin, den Dateinamen ohne Pfad direkt in den Quellcode zu schreiben und die Datei dann im selben Verzeichnis zu speichern als JAR-Datei. Natürlich kann auf diese Weise auch auf andere Ressourcendateien zugegriffen werden, in bestimmten Fällen ist es jedoch bequemer, die Ressourcendateien in ein JAR-Paket einzugeben.

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn