2009-04-02 17 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>*/ 

 Qual è lo scopo di "Container c = getContentPane();" in 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); 
    } 
} 

La mia domanda è senza l'utilizzo di "Container c = getContentPane();" sto ottenendo l'output corretto. Quanto è possibile? Qual è la ragione di questo?

risposta

14

Per iniziare con Swing, utilizzate getContentPane() per cose come add() e setLayout() per farvi capire che c'erano diversi livelli. Dopo un po 'credo che abbiano ammesso che è stato un dolore quindi hanno avuto il getContentPane() chiamato internamente quindi non dovevi più farlo.

This was changed in JDK 1.5:.

Infine, dopo sette anni, abbiamo fatto jFrame.add equivalente a jFrame.getContentPane() aggiungere()

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