Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it L'avatar di oronze
    Registrato dal
    Jun 2001
    Messaggi
    3,543

    JFrame duplicare container

    Ciao io ho una classe che estende JFrame
    codice:
    public class Window extends JFrame{
    	private JPanel container;
    	private JPanel containerDefault;
    	public Window(String t){
    		super(t);
    		this.container = new JPanel();
    		this.containerDefault = new JPanel();
    		this.containerDefault.setBackground(Color.RED);
    		this.addWindowListener(new WindowAdapter(){
    			public void windowClosing(WindowEvent we){
    				close();
    		      }
    		});
    		this.toFront();
    		this.setContentPane(this.container);
    		this.setLayout(new GridLayout(1, 1));
    	}
    	protected void close() {
            System.exit(0);
    	}
    	public Component add(Component c){
    		this.container.add(c);
    		this.setLayout(new FlowLayout());
    		return c;
    	}
    	public void setContent(Container c){
    		this.container.removeAll();
    		this.container.add(c);
    	}
    	public void setDefaultContent(){
    		super.setContentPane(this.containerDefault);
    	}
    	public void setBackgroundColor(Color c){
    		this.containerDefault.setBackground(c);
    		this.container.setBackground(c);
    	}
    }
    ho eliminato tutti gli orpelli per semplificare la lettura...non capisco perchè quando richiamo setDefaultContent() non mi inserisca come contentPane il JPanel contenuto in containerDefault....come risolvo? come posso fare per capire dove sbaglio?

    No ai layout tabellari!

    Insulto libero: http://forum.html.it/forum/showthread.php?s=&postid=12524872#post12524872

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Scusa se lo dico ... ma non fai prima a spiegare a parole cosa vuoi "offrire" (alle sottoclassi) con questa classe "base"?? Perché mi sa che stai facendo dei giri un po' strani ....

    Ad esempio è chiaro, fin qui, che vuoi offrire ad una sottoclasse la possibilità di stabilire che cosa fare al close della finestra. Ok. (tra l'altro il metodo close() chiamalo es. onClose() ... è più chiaro il motivo/significato!).

    Poi? Altro?
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it L'avatar di oronze
    Registrato dal
    Jun 2001
    Messaggi
    3,543
    Ok, ottima argomentazione su close...

    in poche parole sta Window ha anche altri metodi come setBackgroundImg che offre la possibilità di inserire un'immagine di sfondo centrata, un metodo per cambiare lo sfondo del colore e lo faccio sbattendo un JPanel come contentPane della JFrame. fin qui sono stato chiaro? Ma vieniamo al mio problema:

    sta classe deve offrire un metodo per cambiare il contentPane della finestra in modo che, in seguito a un evento, mi basta richiamare window.setContent(new Panel()); e che il contenuto della finestra cambi...fin quì nessun problema, mi basterebbe fare in Window
    setContent(Container C){
    super.setContentPane(c);
    }
    Ahahahahahahahaha. Mi sono risposto da solo!
    Sono proprio un deficiente
    Grazie in ogni caso...senza la tua domanda starei ancora fracassando il pc

    No ai layout tabellari!

    Insulto libero: http://forum.html.it/forum/showthread.php?s=&postid=12524872#post12524872

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.