saraciao ha scritto:
No no non capisco come devo farlo ma so che non era corretto. forse tu intendi così
ctrl.VisualizzazioneAvvisi(Arrays.asList("Utente già presente"));
Tecnicamente sì, ma così devi aggiornare tutti i punti in cui passi 1 solo messaggio. Si possono mettere 2 VisualizzazioneAvvisi in overload: uno con String, l'altro con List<String>. Il primo passa al secondo Arrays.asList(messaggio)
saraciao ha scritto:
Poi così è corretto:
public void setMessaggiErrore(JList list, ArrayList objs)
No, non hanno senso quei due parametri.
OK, ti riscrivo io un pezzetto che è meglio (nella tua dialog la costruzione era pure "fumosa" e quel JPanel che creavi non lo usavi nemmeno).
Attendi un attimo che poi aggiorno qui il post.
CODICE DI ESEMPIO (non l'ho né compilato, né provato!)
La classe della dialog:
// metti i vari import necessari ......
public class VisualizzazioneAvvisi extends JDialog {
private static final long serialVersionUID = 1L;
private Controller ctrl; // Non so a cosa ti possa servire qui ma OK
private DefaultListModel<String> defaultListModel;
public VisualizzazioneAvvisi(Controller ctrl) {
this.ctrl = ctrl;
defaultListModel = new DefaultListModel<>();
setBounds(new Rectangle(0, 13, 0, 0));
setResizable(false);
setForeground(new Color(255, 165, 0));
setBackground(new Color(255, 165, 0));
setBounds(100, 100, 329, 219);
JList<String> listaErrori = new JList<>(defaultListModel);
listaErrori.setBackground(Color.ORANGE);
add(new JScrollPane(listaErrori));
pack();
}
public void setMessaggiErrore(List<String> messaggiErrore) {
defaultListModel.clear();
for (String messaggioErrore : messaggiErrore) {
defaultListModel.addElement(messaggioErrore);
}
}
}
Nel controller 2 "versioni" di VisualizzazioneAvvisi:
public void VisualizzazioneAvvisi(String messaggioErrore) {
VisualizzazioneAvvisi(Arrays.asList(messaggioErrore));
}
public void VisualizzazioneAvvisi(List<String> messaggiErrore) {
if (dialogErrore == null) {
dialogErrore = new VisualizzazioneAvvisi(this); // passi solo il controller
dialogErrore.setBounds(0, 0,360, 150);
dialogErrore.setLocationRelativeTo(menu);
}
dialogErrore.setMessaggiErrore(messaggiErrore);
dialogErrore.setVisible(true);
}