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

 Mục đích của "Container c = getContentPane();" là gì? trong 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); 
    } 
} 

Câu hỏi của tôi là không sử dụng "container c = getContentPane();" Tôi đang nhận được sản lượng chính xác. Làm thế nào nó có thể? Lý do cho điều này là gì?

Trả lời

14

Để bắt đầu với Swing, bạn sử dụng getContentPane() cho những thứ như add() và setLayout() để làm cho bạn nhận ra rằng có các lớp khác nhau. Sau một thời gian tôi đoán họ thừa nhận rằng đó là một nỗi đau vì vậy họ đã getContentPane() gọi nội bộ, do đó bạn không cần phải nữa.

This was changed in JDK 1.5:.

Cuối cùng, sau bảy năm, chúng tôi đã thực hiện jFrame.add tương đương với jFrame.getContentPane() thêm()

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

Các vấn đề liên quan