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

  "Container c = getContentPane();" teriminin amacı nedir? Swing'de?

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

Soruma "Container c = getContentPane();" kullanıyor Doğru çıktı alıyorum. Nasıl mümkün olabilir? Bunun nedeni nedir?

cevap

14

Swing'i kullanmaya başlamak için, farklı katmanların olduğunu fark etmenizi sağlamak için add() ve setLayout() gibi şeyler için getContentPane() öğesini kullandınız. Bir süre sonra sanırım bir acı olduğunu kabul ettiler, böylece artık dahili olarak adlandırılan getContentPane'e() sahip oldular.

This was changed in JDK 1.5.

Son olarak, yedi yıl sonra, yaptığımız jFrame.getContentPane() için jFrame.add eşdeğer (ekleme)

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