面板有兩種,一種是普通面板(JPanel),另一種是滾動面板(JScrollPane)。
面板處理程序的基本內容有以下幾個方面:
JScrollPane類的構造方法有:
以下代碼將文本區放置於滾動面板,滑動面板的滾動條能瀏覽文本區
JTextArea textA = new JTextArea(20,30);
JScrollPane jsp = new JScrollPane(TextA);
getContentPane().add(jsp);//將含文本區的滾動面板加入到當前窗口中。
JPanel
面板是一種通用容器,JPanel的作用是實現界面的層次結構,在它上面放入一些組件,也可以在上面繪畫,將放有組件和有畫的JPanel再放入另一個容器里。JPanel的默認布局為FlowLayout。面板處理程序的基本內容有以下幾個方面:
1 通過繼承聲明JPanel類的子類,子類中有一些組件,並在構造方法中將組件加入面板。 2 聲明JPanel子類對象。 3 創建JPanel子類對象。 4 將JPanel子類對象加入到某個容器。
JPanel類的常用構造方法有:
1 JPanel(),創建一個JPanel對象。 2 JPanel(LayoutManager layout),創建JPanel對象時指定布局layout。
JPanel對象添加組件的方法:
1 add(組件),添加組件。 2 add(字符串,組件),當面板采用GardLayout布局時,字符串是引用添加組件的代號。
【例 11-4】小應用程序有兩個JPanel子類對象和一個按鈕。每個JPanel子類對象又有兩個按鈕和一個標簽。
1 import java.applet.*; 2 import javax.swing.*; 3 class MyPanel extends JPanel{ 4 JButton button1,button2; 5 JLabel Label; 6 MyPanel(String s1,String s2,String s3){ 7 //Panel對象被初始化為有兩個按鈕和一個文本框 8 button1=new JButton(s1);button2=new JButton(s2); 9 Label=new JLabel(s3); 10 add(button1);add(button2);add(Label); 11 } 12 } 13 public class J504 extends Applet{ 14 MyPanel panel1,panel2; 15 JButton Button; 16 public void init(){ 17 panel1=new MyPanel("確定","取消","標簽,我們在面板1中"); 18 panel2=new MyPanel("確定","取消","標簽,我們在面板2中"); 19 Button=new JButton("我是不在面板中的按鈕"); 20 add(panel1);add(panel2);add(Button); 21 setSize(300,200); 22 } 23 }
JScrollPane
當一個容器內放置了許多組件,而容器的顯示區域不足以同時顯示所有組件時,如果讓容器帶滾動條,通過移動滾動條的滑塊,容器中位置上的組件就能看到。滾動面板JScrollPane能實現這樣的要求,JScrollPane是帶有滾動條的面板。JScrollPane是Container類的子類,也是一種容器,但是只能添加一個組件。JScrollPane的一般用法是先將一些組件添加到一個JPanel中,然后再把這個JPanel添加到JScrollPane中。這樣,從界面上看,在滾動面板上,好像也有多個組件。在Swing中,像JTextArea、JList、JTable等組件都沒有自帶滾動條,都需要將它們放置於滾動面板,利用滾動面板的滾動條,瀏覽組件中的內容。JScrollPane類的構造方法有:
1 JScrollPane(),先創建JScrollPane對象,然后再用方法setViewportView(Component com)為滾動面板對象放置組件對象。 2 JScrollPane(Component com),創建JScrollPane對象,參數com是要放置於JScrollPane對象的組件對象。為JScrollPane對象指定了顯示對象之后,再用add()方法將JScrollPane對象放置於窗口中。
JScrollPane對象設置滾動條的方法是:
- setHorizontalScrollBarPolicy(int policy),policy 取以下列3個值之一:
JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS
JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEED
JScrollPane.HORIZONTAL_SCROLLBAR_NEVER - setVerticalScrollBarPolicy(int policy), policy 取以下列3個值之一:
JScrollPane.VERTICAL_SCROLLBAR_ALWAYS
JScrollPane.VERTICAL_SCROLLBAR_AS_NEED
JScrollPane.VERTICAL_SCROLLBAR_NEVER
以下代碼將文本區放置於滾動面板,滑動面板的滾動條能瀏覽文本區
JTextArea textA = new JTextArea(20,30);
JScrollPane jsp = new JScrollPane(TextA);
getContentPane().add(jsp);//將含文本區的滾動面板加入到當前窗口中。
系列文章:

