Semplicemente, dovrai istanziare la classe che rappresenta l'altra finestra e, se non è già previsto dal costruttore, visualizzarla.
Esempio:
codice:
// La tua classe principale
class FramePrincipale extends JFrame {
private FrameSecondario secondario; // Un riferimento alla finestra secondaria
...
// Il gestore del pulsante
public void actionPerformed(ActionEvent ae) {
secondario = new FrameSecondario( ... );
secondario.setVisible( true );
}
}
Il codice di esempio sopra presuppone queste cose:
1) Che tu abbia una classe "FrameSecondario" che estende JFrame
2) Il costruttore di "FrameSecondario" non richiama setVisible( true ) [anche se non sarebbe un errore]
3) Il riferimento al frame secondario è visibile all'interno dell'ActionListener che si occupa di gestire il clic del pulsante
Inoltre, nell'esempio, non si è tenuto conto di eventuali aperture doppie: se l'utente clicca più volte sul pulsante del frame principale, verranno aperte più finestre secondarie (e verrà perso il riferimento a quella aperta precedentemente).
Ciao.