Salve ho creato una classe Finestra che voreri utilizzare per creare finestre ed inserirci dentro i vari campi,
ho creato + costruttori in modo che la finestra possa essere creata con + opzioni.
Fino alla creazione da costruttore la finestra viene creata , se voglio invece inserire le varie parti(bottoni aree testo eccc.) non funziona .Vorrei che mi aiutaste a capire il funzionamento e i miei errori:
Finestra:
CreaFinestracodice:import java.awt.*; import javax.swing.*; public class Finestra { private String titolo; private int altezza,larghezza; private boolean centra; private JPanel c; //creo pannello per aggiungere le parti nei metodi private JFrame f; //creo frame per utilizzarlo in centra allarga ecc public Finestra(String titolo, int altezza, int larghezza, boolean centra) { this.titolo = titolo; this.altezza = altezza; this.larghezza = larghezza; this.centra = centra; f=new JFrame(titolo); // f.setSize(larghezza,altezza); if(centra){ centrafinestra(f); } else{ f.setLocation(100,100); } JPanel c = new JPanel(); f.setContentPane(c); f.setVisible(true); f.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); } public Finestra(String titolo, int altezza, int larghezza) { this.titolo = titolo; this.altezza = altezza; this.larghezza = larghezza; f=new JFrame(titolo); f.setSize(larghezza,altezza); f.setLocation(100, 100); JPanel c = new JPanel(); f.setContentPane(c); f.setVisible(true); f.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); } public Finestra(String titolo) { this.titolo = titolo; JFrame f=new JFrame(titolo); f.setSize(400,400); f.setLocation(100, 100); JPanel c = new JPanel(); f.setContentPane(c); f.setVisible(true); f.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); } public Finestra() { JFrame f=new JFrame(); f.setSize(400,400); f.setLocation(100, 100); JPanel c = new JPanel(); f.setContentPane(c); f.setVisible(true); f.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); } public void centrafinestra(JFrame w){ Dimension schermo = Toolkit.getDefaultToolkit().getScreenSize(); Dimension finestra =w.getSize() ; f.setLocation((schermo.width-finestra.width)/2,(schermo.height-finestra.height)/2); } public void inserisciEtichetta(String nomeetichetta){ JLabel etichetta = new JLabel(nomeetichetta); c.add(etichetta); } public void inserisciBottone(String nomebottone){ JButton bottone= new JButton(nomebottone); c.add(bottone); } public void InserisciAreatesto(String nomeopzionale,int larghezzaArea){ JTextField areatesto = new JTextField(nomeopzionale,larghezzaArea) ; c.add(areatesto); } public void inserisciTitoloFinestra(String Titolo){ f=new JFrame(titolo); } public void set_grandezzaFinestra(int newLarghezza , int newAltezza){ f.setSize(newLarghezza, newAltezza); } }
Credo anche di aver capito perchè , perchè una volta costruita una finestra non posso aggiungere le varie "parti" , ma ne devo creare una nuova .codice:public class CreaFinestra { public static void main(String[] args) { Finestra w = new Finestra("Finestrona",800,800,false); w.inserisciBottone("bottone"); } }
Domando facendo delle variazioni al codice è possibile fare quello che ho detto(esempio che i metodi chiudano la finestra costruita e ne creino una nuova aggiungendo le "parti" del metodo)?

Rispondi quotando