Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    1,258

    [java] cosa vuol dire? getContentPane()

    codice:
    JButton onOff = new JButton("ON-OFF");
    	  	JLabel t = new JLabel();
    	 	JFrame f = new JFrame();
    	 	int count = 0;
    
    		Container cp = f.getContentPane();
    		cp.setLayout(new FlowLayout());
    ciao a tutti...mi spiegate cosa significa:
    Container cp = f.getContentPane(); e l'istruzione dopo?
    grazie

  2. #2
    codice:
    cp.setLayout(new FlowLayout());
    non è altro che il settaggio del Layout di tipo FlowLayout al contenitore cp.
    mentre
    codice:
    Container cp = f.getContentPane();
    è l'impostazione del contenitore principale
    www.matteosteri.it

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    1,258
    io invece avrei creato un jpanel, in questo modo...le alternative si equivalgono? sul libro che sto studiando si fa cosi...poi aggiungo le cose che devo mettere al JPanel e aggiungo il JPanel al JFrame.
    codice:
      JPanel jp = new JPanel();

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,315
    Diciamo che si equivalgono... solo che non puoi aggiungere qualcosa al JFrame, ma solo al suo ContentPane, che non è altro che un pannello.

    Quindi avresti dovuto creare il tuo JPanel, aggiongerci i controlli e, a questo punto, sostituire il ContentPane del JFrame con il tuo pannello.

    Credo che nel tuo libro siano trattati Frame e Panel di AWT e non di Swing... altrimenti l'autore del libro ha preso un grosso granchio.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    1,258
    solo che non puoi aggiungere qualcosa al JFrame
    si che posso..ti posto il codice, di come l'avrei fatto io:

    codice:
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    
    // Il contatore viene incrementato o decrementato
    // a seconda del valore di runFlag
    // Il bottone puo'  cambiare il valore di runFlag
    // anche se il main sta eseguendo una computazione infinita
    
    public class Contatore2b
    {
    	private static boolean runFlag = true;
    
    
    	public static void main(String[] argv)
    	{	JButton onOff = new JButton("ON-OFF");
    	  	JLabel t = new JLabel();
    	 	JFrame f = new JFrame();
    	 	int count = 0;
    
    		//Container cp = f.getContentPane();
    		//cp.setLayout(new FlowLayout());
    		onOff.addActionListener(new ActionListener()
    			{	public void actionPerformed(ActionEvent e)
    				{	runFlag = !runFlag;
    				}
    			});
    
    	    JPanel jp = new JPanel();
    	    f.add(jp);
    		jp.add(onOff);
    		jp.add(t);
    		f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		f.pack();
          f.setVisible(true);
    
    		// il main entra in un ciclo infinito
          while (true)
    		{	try
    			{	Thread.sleep(100);
    			} catch(InterruptedException e) {}
    			if (runFlag) t.setText(Integer.toString(count++));
    			else t.setText(Integer.toString(count--));
    		}
    
    	}
    }
    stò studiando sul: Core Java 2, ma cmq se mi dici che è una cosa che si usa la imparo, probabile, che ognuno poi acquisisca un certo stile e lo reiteri.

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 © 2025 vBulletin Solutions, Inc. All rights reserved.