Java圖形化界面設計——中間容器(Jpanel)


1、  將組件添加到JFrame中

方式之一:

frame.getContentPane().add(childComponent)

用getContentPane()方法獲得JFrame的內容面板,再對其加入組件,一般只使用該方式添加組件。

 

向JFrame中添加組件的兩種方式之二:

把組件添加到Jpanel之類的中間容器中,用setContentPane()方法把該容器置為JFrame的內容面板:

    Jpanel contentPane=new Jpanel( );

      ……//把其它組件添加到Jpanel中;

frame.setContentPane(contentPane);

 

注意:用setContentPane()方法不允許設置窗體布局,其只顯示最后添加的組件,且該組件將布滿整個窗口,而不管原先組件的大小設置,相當於只允許添加一次組件作為JFrame的內容面板。所以一般不實用該方法進行添加組件(可能是我不知道吧)。

 

2、  JPanel的使用

 

 

         JPanel是java圖形化界面中最常使用的容器。

實例:在窗體中添加一個藍色的面板

// PanelDemo.java

import javax.swing.*;

import java.awt.*;  //引入AWT包,因為要使用到顏色類

class PanelDemo {

         public static void main(String[] args)throws Exception

         {   JFrame f=new JFrame("第一個Java窗口");                   

f.setSize(300,200);         

              f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        f.setVisible(true);         

                f.setResizable(false);

                f.setLocationRelativeTo(null) ;

                   f.setLayout(null);  //設置窗體布局為空布局

                JPanel p=new JPanel();             //實例化一個面板

                   //設置面板背景色為藍色,如果不引入AWT包,程序將出錯,可以試試看

                p.setBackground(Color.BLUE);       

                p.setSize(100,100);          //設置面板對象大小

                f.getContentPane().add(p);     //將面板添加到窗體中

                   //如果使用下面添加面板的方法,面板將布滿整個窗口,可以試試看

                   //f. setContentPane(p);

          }

}

 

 

中間容器可以嵌套中間容器

 

實例2:面板的嵌套

import java.awt.*;

import javax.swing.*;

class  TwoPanel extends JFrame {

  public TwoPanel( String title){

  super(title);

}

 public static void main(String args[]) {

   TwoPanel fr=new TwoPanel("Two Panel測試");

   JPanel pan1 = new JPanel();

   JPanel pan2 = new JPanel();

   fr.setLayout(null);     

   fr.getContentPane().setBackground(Color.green);  //設置窗口的顏色

   fr.setSize(250,250);

   pan1.setLayout(null);                  //設置面板為空布局

   pan1.setBackground(Color.red);

   pan1.setSize(150,150);

   pan2.setBackground(Color.yellow);

   pan2.setSize(50,50);

   pan1.add(pan2);   //將面板pan2添加到pan1中

         //將pan1添加到窗體中,因為pan2被添加到pan1中,所以pan1、pan2都被顯示在窗體中

   fr.getContentPane().add(pan1); 

   fr.setVisible(true);

fr.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

 }

}

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM