Этого кода добавляет Избраные песни пользователя в JMenuItem из ArrayMapJMenuItem обновления без перезапуска клиента
public void actionPerformed(ActionEvent evt) {
String cmd = evt.getActionCommand();
if (cmd != null) {
if (cmd.equalsIgnoreCase("Favorite song")) {
Music.f.add(Music.s);
System.out.println(Music.s + " added to favorites");
System.out.println(Music.f + " current list");
}
}
}
public void initUI() {
try {
//...
JMenu fileMenu = new JMenu("Music And Sound Options");
JMenu favorites = new JMenu("Favorite songs");
for (String name : Music.f) {
JMenuItem menuItem = new JMenuItem(name);
menuItem.addActionListener(this);
favorites.add(menuItem);
}
JMenuBar menuBar = new JMenuBar();
JMenuBar jmenubar = new JMenuBar();
frame.add(jmenubar);
menuBar.add(favorites);
frame.getContentPane().add(menuBar, BorderLayout.NORTH);
frame.pack();
frame.setVisible(true); // can see the client
init();
//...
} catch (Exception e) { e.printStackTrace(); }
}
Я хочу список песен для обновления после песни добавляются, вместо того, чтобы перезапустить клиент чтобы увидеть больше песен
Нет необходимости использовать invokeLater, потому что код из прослушивателя выполняется на EDT. – camickr
Право; Я пропустил этот OP, чтобы это произошло внутри метода слушателя. Это то, что я получаю за то, что делаю слишком много вещей сразу ... – Josh