Se si estende JFrame, vorrei modificare/personalizzare la mia classe Jframe corrente e quindi la sottoclasse può utilizzare questa implementazione personalizzata.
Se non c'è niente che io voglio fare il cambiamento della classe JFrame, basta uso il esistente come nel secondo frammento che hai dato nel codice. Per uso, intendo creando un altro JComponent (pulsante/etichetta per esempi), ecc. In un JPanel e crea un oggetto Test e imposta JFrame contentPane su questo oggetto. Qualcosa di simile
public class Test extends JPanel {
public class() {
// add buttons/label here
}
...
private static void createAndShowGUI() {
JFrame frame = new JFrame();
Test object = new Test();
frame.setContentPane(object.setOpaque(true));
frame.setVisible(true);
}
...
}
Amen, e d'accordo al 100% 1+ up-voto. –
Se aggiungo alcuni metodi nella classe estesa, non sto estendendo il JFrame? Per favore, rispondi a questo. Perché l'opzione 1 è un abuso della funzione di estensione? Non stava ignorando un metodo chiamato setVisible. Significa che non posso chiamare metodi ereditati? Perché non finalizzare il JFrame esteso se preoccupato per potenziali sottoclassi? Non penso sia ** sbagliato ** estendere JFrame per creare una finestra, se è una finestra. –
Sto cercando di capire meglio. Un esempio di scuola: uno studente estende una persona. Lo studente ha la possibilità di accedere, la persona no. Una finestra "NewTask" fornisce una funzione per creare una nuova attività in base a un modulo, JFrame no. –