2014-05-18 108 views
0

我有3個按鈕,我需要通過從文件中讀取來設置其名稱。這是我到目前爲止:從文件中讀取按鈕名稱

BufferedReader inputFile = new BufferedReader (new FileReader ("ButtonNames.txt"));  
    String buttonName = ""; 
    int startLine = 1; 
    int endLine = 3; 
    for (int i = startLine; i < endLine + 1; i++) 
    { 
     buttonName = inputFile.readLine(); 
    } 
    Button1 = new JButton(buttonName); 
    buttonPanel.add(Button1, BorderLayout.LINE_START); 

這將只設置按鈕名稱到文件的最後一行。如何將button1的名稱設置爲第一行,將button2設置爲第二行等。我認爲您需要使用數組,但我不知道如何實現它。

回答

2

將該代碼放在012循環的底部的內部

for (int i = startLine; i < endLine + 1; i++) 
{ 
    buttonName = inputFile.readLine(); 
    Button1 = new JButton(buttonName); 
    buttonPanel.add(Button1, BorderLayout.LINE_START); 
} 
+0

它仍然顯示在文件中的文本的最後一行。我認爲循環顯示第一行的按鈕名稱,然後重新開始並顯示第二行,然後顯示第三行。 – user3479783

1

使用數組:

JButton[] buttons = new JButton[3]; 
for (int i = startLine; i < endLine + 1; i++) 
{ 
    String buttonName = inputFile.readLine(); 
    buttons[i-1] = new JButton(buttonName); 
    buttonPanel.add(buttons[i-1], BorderLayout.LINE_START); 
} 
0

這也非常實用:

public Main() { 
    Panel p = new Panel(); 
    String[] names = Names("res/ButtonNames.txt"); 
    for(int i = 0; i < names.length; i++) { 
     p.add(new Button(names[i])); 
    } 
    frame.add(p); 
} 

private String[] Names(String filepath) { 
    try { 
     BufferedReader br = new BufferedReader(new FileReader(new File(filepath))); 
     String[] split = br.readLine().split(","); 
     br.close(); 
     return split; 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
    return null; 
}