Forum by laureateci.it
[ Home | REGOLE FORUM | Tutti i blog | Profilo | Registrati | CHAT | Discussioni Attive | Discussioni Recenti | Segnalibro | Msg privati | Sondaggi Attivi | Utenti | Download Informatica | Download ICD | Download TPS | Download Magistrale | Download Specialistica | Giochi | Cerca nel web | cerca | faq | RSS ]
Nome Utente:
Password:
Salva Password
Password Dimenticata?

 Tutti i Forum
 Cultura Informatica
 Corso di java
 Estendere classi swing

Nota: Devi essere registrato per poter inserire un messaggio.
Per registrarti, clicca qui. La Registrazione è semplice e gratuita!

Larghezza finestra:
Nome Utente:
Password:
Modo:
Formato: GrassettoCorsivoSottolineatoBarrato Aggiungi Spoiler Allinea a  SinistraCentraAllinea a Destra Riga Orizzontale Inserisci linkInserisci EmailInserisci FlashInserisci Immagine Inserisci CodiceInserisci CitazioneInserisci Lista Inserisci Faccine
   
Icona Messaggio:              
             
Messaggio:

  * Il codice HTML è OFF
* Il Codice Forum è ON

Smilies
Approvazione [^] Arrabbiato [:(!] Bacio [:X] Bevuta [:273]
Caldo [8D] Compiaciuto [8)]    
compleanno [:269]
Davvero Felice [:D] Diavoletto [}:)] Disapprovazione [V] Domanda [?]
Felice [:)] Fumata [:29] Goloso [:P] Imbarazzato [:I]
Infelice [:(] Morte improvvisa da [:62]
Morto [xx(] Occhio Nero [B)] Occhiolino [;)] Palla 8 [8]
pc [:205]    
Riproduzione [:76]
Scioccato [:O]      

   Allega file
  Clicca qui per inserire la tua firma nel messaggio.
Clicca qui per sottoscrivere questa Discussione.
    

V I S U A L I Z Z A    D I S C U S S I O N E
Aiace Inserito il - 19/06/2007 : 11:54:45
Ho creato due classi che estendono un JFrame e un JPanel, che chiamo rispettivamente, per semplificare, JMioFrame e JMioPanel.

All'interno di JMioFrame, dichiaro come variabile static un oggetto di tipo JMioPanel.

class JMioFrame extends JFrame {
      ...
      private static JMioPanel miopanel = new JMioPanel();
      ...
}


JMioPanel contiene un costruttore che aggiunge le componenti che servono (label, pulsanti,...) con il metodo add.

Nel mioframe, se viene premuto un pulsante, viene visualizzato un popup che dovrebbe contenere il miopanel.
Queste le istruzioni che aprono il popup:


final JPopupMenu miopopup = new PopupMenu();
miopopup.add(miopanel);
miopopup.add(new JButton("chiudi"));
miopopup.setVisible(true);


A me sembra tutto corretto... eppure il pulsante "chiudi" viene visualizzato nel popup, ma il miopanel no !!!
2   U L T I M E    R I S P O S T E    (in alto le più recenti)
feeb Inserito il - 19/06/2007 : 20:55:56
Citazione:
Messaggio inserito da Aiace

Ho creato due classi che estendono un JFrame e un JPanel, che chiamo rispettivamente, per semplificare, JMioFrame e JMioPanel.

All'interno di JMioFrame, dichiaro come variabile static un oggetto di tipo JMioPanel.

class JMioFrame extends JFrame {
      ...
      private static JMioPanel miopanel = new JMioPanel();
      ...
}


<snip>

A me sembra tutto corretto... eppure il pulsante "chiudi" viene visualizzato nel popup, ma il miopanel no !!!



perche' hai dichiarato miopanel come 'static' ?
non dovrebbe esserci una nuova istanza di JMioPanel per ogni diversa istanza di JMioFrame ? (ogni istanza di JMioFrame dovrebbe contenere, secondo me, una ed una sola istanza di JMioPanel: come fai tu, tutte le istanze di JMioFrame condividono la stessa istanza di JMioPanel)

comunque, qui c'e' un esempio di esempio di classe che estende JPanel:


import javax.swing.*;
import java.awt.*;
 
public class MyPanel extends JPanel {
	static final long serialVersionUID =1;
	private JPanel header =new JPanel();
	private JPanel body=new JPanel();
	
	MyPanel (){
		//setBackground(Color.LIGHT_GRAY);
		//setBorder(BorderFactory.createEtchedBorder());
		setLayout(new BorderLayout());
		
		//populate header with your buttons & stuff...
		JLabel lab = new JLabel("Header region");
		header.add(lab);
		JButton b=new JButton("Button1");
		header.add(b);
		b=new JButton("Button 2");
		header.add(b);
		b=new JButton("Button 3");
		header.add(b);
		
		add(header,BorderLayout.NORTH);
		add(body,BorderLayout.CENTER);
	}
 
	// Deligate all required JPanel methods to body!!!
	// e.g.:
	public Component add(Component c){
		return body.add(c);
	}
}


e qui un esempio su come utilizzarla:


import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
 
public class TestFrame extends JFrame {
	static final long serialVersionUID =1;
	
	public static void main(String[] args) {
		TestFrame frame= new TestFrame();
		MyPanel my= new MyPanel();
		frame.add(my);
		my.add(new JButton("BLABLABLUBB"));
		my.add(new JButton("BLABLABLUBB2"));
		my.add(new JButton("BLABLABLUBB3"));
		my.add(new JButton("BLABLABLUBB4"));
		
		frame.setVisible(true);
	}
	
	public TestFrame() {
        JMenuBar menuBar = new JMenuBar();
        JMenu menuFile = new JMenu();
        JMenuItem menuFileExit = new JMenuItem();
 
        menuFile.setText("file");
        menuFileExit.setText("exit");
 
        // Add action listener.for the menu button
        menuFileExit.addActionListener
        (
            new ActionListener() {
                public void actionPerformed(ActionEvent e) {
                    TestFrame.this.windowClosed();
                }
            }
        );
        menuFile.add(menuFileExit);
        menuBar.add(menuFile);
 
        setTitle("TestFrame");
        setJMenuBar(menuBar);
        setSize(new Dimension(800, 500));
 
        // Add window listener.
        this.addWindowListener
        (
            new WindowAdapter() {
                public void windowClosing(WindowEvent e) {
                    TestFrame.this.windowClosed();
                }
            }
        );
    }
 
    protected void windowClosed() {
        System.exit(0);
    }
 
}
genius Inserito il - 19/06/2007 : 18:01:06
non ne ho la + pallida idea, come non ho la + pallida idea di cosa serva inserire un JPanel in un menu popup...

Forum by laureateci.it © 2002 - 2012 Laureateci Communications Torna all'inizio della Pagina
Il DB ha risposto in 0,06 secondi.

TargatoNA.it | SuperDeejay.Net | Antidoto.org | Brutto.it | Equiweb.it | Snitz Forum 2000