这里是一个工作循环:
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