Allora, cerco di spiegare meglio la situazione.
Sto ancora lottando con il mio lanciatore di programmi, per il quale in passato mi hai dato preziosissime indicazioni.
Per aprire automaticamente il menù di Start (
MnuStart) nel momento in cui eseguo il programma o lo attivo tramite un'istanza dello stesso eseguita successivamente, avevo trovato il seguente codice da inserire nel costruttore del programma.
SwingUtilities.invokeLater(new Runnable() {
public void run() {
MnuStart.doClick(); // Apre MnuStart all'attivazione.
}
});
addWindowFocusListener(new WindowFocusListener() {
public void windowGainedFocus(WindowEvent e) {
MnuStart.doClick(); // Apre MnuStart al ricevimento del focus.
}
});
E con questo ha funzionato per un bel po' di tempo.
Poi ad un certo punto, non so cosa sia successo, dopo un po' di attivazioni di programmi e aperture documenti, in modo del tutto casuale, succede che il
MnuStart resta aperto e non mi passa il fuoco al documento o applicazione lanciata.
Per sbloccare la situazione devo fare click con il mouse sul documento o applicazione, al che il
MnuStart si chiude.
Oppure peggio ancora, succede che dopo aver chiuso un documento o applicazione il fuoco ritorna al lanciatore e non mi lascia più operare ne col mouse ne con la tastiera su altro che non sia lui stesso.
E la situzione la sblocco o spostandomi su un altro menù dello stesso lanciatore che mi consente di terminare il programma, oppure scegliendo tra le varie voci di menù un'applicazione semplice come la calcolatrice e poi facendo click con il mouse sulla calcolatrice.
Allora il
MnuStart si chiude e posso operare normalmente.
A questo punto ho aggiunto le istruzioni che mi hai indicato, alla fine del metodo in cui lancio i programmi o apro i documenti:
private void menuItemActionPerformed(java.awt.event.ActionEvent evt) {
// Varie istruzioni per lanciare programmi o aprire documenti.
MnuStart.setSelected(false);
MnuStart.setPopupMenuVisible(false);
}
Ma non cambia nulla.
Non è il posto giusto per metterle?
Oppure è sbagliato il modo in cui apro
MnuStart?