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

 Was ist der Zweck von "Container c = getContentPane();" im Schwingen?

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); 
    } 
} 

Meine Frage ist, ohne die Verwendung von "Container c = getContentPane();" Ich bekomme eine korrekte Ausgabe. Wie ist es möglich? Was ist der Grund dafür?

Antwort

14

Um mit Swing zu beginnen, verwenden Sie getContentPane() für Dinge wie add() und setLayout(), um Ihnen zu verdeutlichen, dass es verschiedene Ebenen gab. Nach einer Weile vermuteten sie, dass es ein Schmerz war, also hatten sie das getContentPane() intern genannt, also mussten Sie nicht mehr.

This was changed in JDK 1.5.

schließlich nach sieben Jahren haben wir jFrame.add entspricht jFrame.getContentPane gemacht() hinzufügen()

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