Java知多少(83)面板基礎:JPanel和JScrollPane


面板有兩種,一種是普通面板(JPanel),另一種是滾動面板(JScrollPane)。

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對象設置滾動條的方法是:

  1. setHorizontalScrollBarPolicy(int policy),policy 取以下列3個值之一:
        JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS
        JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEED
        JScrollPane.HORIZONTAL_SCROLLBAR_NEVER
  2. 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);//將含文本區的滾動面板加入到當前窗口中。
北風網


免責聲明!

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



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