Java:如何将文件中的图像添加到ResourceBundle中?

时间:2017-09-15 01:10:44

标签: java eclipse swing resourcebundle

我正在尝试在java中创建一个splitpane gui对象,如链接中所述:http://www.cs.fsu.edu/~jtbauer/cis3931/tutorial/ui/swing/example-swing/SplitPaneDemo.java

但我真的不明白这一部分:

library(purrr)

doc <- read_xml(txt)

xml_find_all(doc, ".//*[name()='hmmer3-match']") %>% 
 map(xml_find_all, ".//*[name()='signature']") -> sig
sig
## [[1]]
## {xml_nodeset (1)}
## [1] <signature ac="PF00187" desc="Chitin recognition protein" name="Chit ...
## 
## [[2]]
## {xml_nodeset (1)}
## [1] <signature ac="PF00182" desc="Chitinase class I" name="Glyco_hydro_1 ...

hmmer <- xml_find_all(doc, ".//*[name()='hmmer3-match']")
sig <- lapply(hmmer, xml_find_all, ".//*[name()='signature']")
sig
## [[1]]
## {xml_nodeset (1)}
## [1] <signature ac="PF00187" desc="Chitin recognition protein" name="Chit ...
## 
## [[2]]
## {xml_nodeset (1)}
## [1] <signature ac="PF00182" desc="Chitinase class I" name="Glyco_hydro_1 ...

hmmer <- xml_find_all(doc, ".//*[name()='hmmer3-match']")
sig <- list()
for (i in 1:length(hmmer)) {
  sig_match <- xml_find_all(hmmer[[i]], ".//*[name()='signature']")
  sig <- c(sig, sig_match)
}
sig
## [[1]]
## {xml_node}
## <signature ac="PF00187" desc="Chitin recognition protein" name="Chitin_bind_1">
## [1] <entry ac="IPR001002" desc="Chitin-binding, type 1" name="Chitin-bd_ ...
## [2] <models>\n  <model ac="PF00187" desc="Chitin recognition protein" na ...
## [3] <signature-library-release library="PFAM" version="31.0"/>
## 
## [[2]]
## {xml_node}
## <signature ac="PF00182" desc="Chitinase class I" name="Glyco_hydro_19">
## [1] <entry ac="IPR000726" desc="Glycoside hydrolase, family 19, catalyti ...
## [2] <models>\n  <model ac="PF00182" desc="Chitinase class I" name="Glyco ...
## [3] <signature-library-release library="PFAM" version="31.0"/>

所以基本上它要求我从名为&#39;图像名称&#39;的文件中创建资源包。包含我想要使用的图像列表?我不明白resourcebundle是如何工作的,我在网上看到的所有例子都涉及使用对象或数组。如何使用resourcebundle从文件中获取图像?

1 个答案:

答案 0 :(得分:0)

我想有一个属性文件“imagenames”,其中包含键值“images”,其值由空格“”分隔。

images=image1name.png img2name.png img3name.png ...

您可以在parseList方法中看到,您将字符串解析为图像名称数组。

protected static Vector parseList(String theStringList) {
    Vector v = new Vector(10);
        StringTokenizer tokenizer = new StringTokenizer(theStringList, " ");
        while (tokenizer.hasMoreTokens()) {
            String image = tokenizer.nextToken();
            v.addElement(image);
        }
    return v;
    }

和在SplitPaneDemo方法中:

// Set up the picture label and put it in a scroll pane
         currentImage = new ImageIcon("images/" + 
                     (String)imageList.firstElement());

您从图像列表中的“images”目录+图像名称中获取第一张图像。

即。 currentImage = new ImageIcon("images/image1name.png")

总的来说,你应该创建一个目录,添加你的图像,用关键的“图像”和values = yourImgName1 yourImgName2创建属性文件“imagenames”....通过空白

images=yourImgName1 yourImgName2 ...

并使用您的示例从目录中获取图像。

它是如何工作的 http://www.avajava.com/tutorials/lessons/how-do-i-read-a-properties-file-with-a-resource-bundle.html

https://www.mkyong.com/java/java-resourcebundle-example/