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
 Nuova Discussione  Rispondi
 Versione Stampabile Bookmark this Topic Aggiungi Segnalibro
I seguenti utenti stanno leggendo questo Forum Qui c'è:
Autore Discussione Precedente Discussione Discussione Successiva  

Aiace
Piccolo Cinema Onirico


Regione: Puglia
Prov.: Bari


Inserito il - 19/06/2007 : 11:54:45  Mostra Profilo  Visita l'Homepage di Aiace  Rispondi Quotando
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 !!!

genius
dott. ing. cav. ...FN

Genio


Regione: Puglia
Prov.: Bari
Città: Molfetta - Caput Mundi


Inserito il - 19/06/2007 : 18:01:06  Mostra Profilo  Visita l'Homepage di genius  Clicca per vedere l'indirizzo MSN di genius  Invia a genius un messaggio Yahoo! Invia a genius un Messaggio Privato  Rispondi Quotando
non ne ho la + pallida idea, come non ho la + pallida idea di cosa serva inserire un JPanel in un menu popup...

"...e se non hai morale
e se non hai passione
se nessun dubbio ti assale
perché la sola ragione che ti interessa avere
è una ragione sociale
soprattutto se hai qualche dannata guerra da fare
non farla nel mio nome
non farla nel mio nome
che non hai mai domandato la mia autorizzazione
se ti difenderai non farlo nel mio nome
che non hai mai domandato la mia opinione..."

Un blog farlocco
Torna all'inizio della Pagina

feeb
Cantù Che Conta Col Cayenne

neophyte

Prov.: Zara


Inserito il - 19/06/2007 : 20:55:56  Mostra Profilo  Visita l'Homepage di feeb  Clicca per vedere l'indirizzo MSN di feeb Invia a feeb un Messaggio Privato  Rispondi Quotando
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);
    }
 
}

http://www.avaaz.org/it/ - http://www.flickr.com/photos/dimethyltryptamine/

Modificato da - feeb in data
Torna all'inizio della Pagina
  Discussione Precedente Discussione Discussione Successiva  
 Nuova Discussione  Rispondi
 Versione Stampabile Bookmark this Topic Aggiungi Segnalibro
Vai a:
Forum by laureateci.it © 2002 - 2012 Laureateci Communications Torna all'inizio della Pagina
Il DB ha risposto in 0,38 secondi.

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