這裏是一個工作循環:
FileReader monFichier = null;
BufferedReader tampon = null;
ArrayList<JMenu> tJMenu = new ArrayList<JMenu>();
try {
monFichier = new FileReader("param/tableMenu.bat");
// Connecte les flux :
tampon = new BufferedReader(monFichier);
while (true) {
// Lit une ligne du fichier :
String ligne = tampon.readLine();
// Vérifie la fin de fichier
if (ligne == null)
break;
//On récupère la position du "#" :
int pos = ligne.indexOf("#");
//On renseigne nos tableaux :
boolean existant = false;
for (JMenu m : tJMenu)
{
if (m.getText().equals(ligne.substring(0, pos-1)))
{
m.add(new JMenuItem(ligne.substring(pos+2, ligne.length())));
existant = true;
}
}
if (!existant)
{
tJMenu.add(new JMenu(ligne.substring(0, pos-1)));
for (JMenu m : tJMenu)
{
if (m.getText().equals(ligne.substring(0, pos-1)))
{
m.add(new JMenuItem(ligne.substring(pos+2, ligne.length())));
}
}
}
} // Fin du while
JMenuBar menu = new JMenuBar();
JFrame f = new JFrame();
JPanel p = new JPanel();
f.setContentPane(p);
f.setJMenuBar(menu);
f.setSize(600, 800);
f.setVisible(true);
for (JMenu m : tJMenu)
{
menu.add(m);
}
} catch (IOException exception) {
exception.printStackTrace();
} finally {
try {
tampon.close();
monFichier.close();
} catch(IOException exception1) {
exception1.printStackTrace();
}
}
這裏是文本文件:
JMenu 1 # JMenuItem 1.1
JMenu 1 # JMenuItem 2.1
JMenu 1 # JMenuItem 3.1
JMenu 2 # JMenuItem 1.2
JMenu 2 # JMenuItem 2.2
JMenu 3 # JMenuItem 1.3
JMenu 3 # JMenuItem 2.3
JMenu 3 # JMenuItem 3.3
JMenu 3 # JMenuItem 4.3
編碼,因爲我不知道這個循環之前,我只是對紙張。我認爲使用FileInputStream和BufferedInputStream來讀取文件並使用HashMap將JMenu的字符串作爲鍵和JMenuItem作爲值。然後,閱讀我的HashMap來構建菜單。 – Fred
好的。試試看。如果遇到任何錯誤,請再詢問一次。 – bradimus
當然!我只是在尋找想法和曲目。 – Fred