2009-04-02 8 views
5
import java.awt.*; 
import javax.swing.*; 
public class 
import javax.swing.*; 
import java.awt.*; 
import javax.swing.tree.*; 
import javax.swing.event.*; 
/*<applet code="JT.class" width=200 height=300> 
</applet>*/ 

 ¿Cuál es el propósito de "Container c = getContentPane();" en Swing?

public class JT extends JApplet { 
    JTree tree; 
    JTextField box; 
    Object nodeInfo; 
    String node1; 
    public void init() { 
     Container c=getContentPane(); 
     c.setLayout(new BorderLayout()); 
     DefaultMutableTreeNode topNode=new DefaultMutableTreeNode("qiscet"); 
     DefaultMutableTreeNode cou=new DefaultMutableTreeNode("Courses"); 
     DefaultMutableTreeNode mca=new DefaultMutableTreeNode("MCA"); 
     DefaultMutableTreeNode mba=new DefaultMutableTreeNode("MBA"); 
     DefaultMutableTreeNode tech=new DefaultMutableTreeNode("B.tech"); 
     topNode.add(cou); 
     cou.add(mca); 
     cou.add(mba); 
     cou.add(tech); 
     DefaultMutableTreeNode manage=new DefaultMutableTreeNode("Management"); 
     DefaultMutableTreeNode ac=new DefaultMutableTreeNode("Accounts"); 
     DefaultMutableTreeNode sp=new DefaultMutableTreeNode("Sports"); 
     DefaultMutableTreeNode lib=new DefaultMutableTreeNode("Library"); 
     topNode.add(manage); 
     manage.add(ac); 
     manage.add(sp); 
     manage.add(lib); 
     tree=new JTree(topNode); 
     c.add(tree,BorderLayout.NORTH); 
     box=new JTextField("",80); 
     c.add(box,BorderLayout.SOUTH); 
    } 
} 

Mi pregunta es sin utilizar "contenedor C = getContentPane();" obtengo la salida correcta. ¿Cómo es posible? ¿Cuál es la razón para esto?

Respuesta

14

Para comenzar con Swing, usaste getContentPane() para cosas como add() y setLayout() para darte cuenta de que hay diferentes capas. Después de un tiempo, supongo que aceptaron que era un problema, así que tenían el getContentPane() llamado internamente, así que ya no tenías que hacerlo.

This was changed in JDK 1.5:.

Por último, después de siete años, hemos hecho jFrame.add equivalente a jFrame.getContentPane() añadir()

And here is a link to the rationale behind the original reason.

Cuestiones relacionadas