java入門教程-10.4Java面板基礎:JPanel和JScrollPane
阿新 • • 發佈:2019-02-05
面板有兩種,一種是普通面板(JPanel),另一種是滾動面板(JScrollPane)。
面板處理程式的基本內容有以下幾個方面:
JPanel類的常用構造方法有:
JPanel物件新增元件的方法:
【例 11-4】小應用程式有兩個JPanel子類物件和一個按鈕。每個JPanel子類物件又有兩個按鈕和一個標籤。
import java.applet.*;
import javax.swing.*;
class MyPanel extends JPanel{
JButton button1,button2;
JLabel Label;
MyPanel(String s1,String s2,String s3){
//Panel物件被初始化為有兩個按鈕和一個文字框
button1=new JButton(s1);button2=new JButton(s2);
Label=new JLabel(s3);
add(button1);add(button2);add(Label);
}
}
public class J504 extends Applet{
MyPanel panel1,panel2;
JButton Button;
public void init(){
panel1=new MyPanel("確定","取消","標籤,我們在面板1中");
panel2=new MyPanel("確定","取消","標籤,我們在面板2中");
Button=new JButton("我是不在面板中的按鈕");
add(panel1);add(panel2);add(Button);
setSize(300,200);
}
}
JScrollPane類的構造方法有:
JScrollPane物件設定滾動條的方法是:
以下程式碼將文字區放置於滾動面板,滑動面板的滾動條能瀏覽文字區
JTextArea textA = new JTextArea(20,30);
JScrollPane jsp = new JScrollPane(TextA);
getContentPane().add(jsp);//將含文字區的滾動面板加入到當前視窗中。
JPanel
面板是一種通用容器,JPanel的作用是實現介面的層次結構,在它上面放入一些元件,也可以在上面繪畫,將放有元件和有畫的JPanel再放入另一個容器裡。JPanel的預設佈局為FlowLayout。面板處理程式的基本內容有以下幾個方面:
- 通過繼承宣告JPanel類的子類,子類中有一些元件,並在構造方法中將元件加入面板。
- 宣告JPanel子類物件。
- 建立JPanel子類物件。
- 將JPanel子類物件加入到某個容器。
JPanel類的常用構造方法有:
- JPanel(),建立一個JPanel物件。
- JPanel(LayoutManager layout),建立JPanel物件時指定佈局layout。
JPanel物件新增元件的方法:
- add(元件),新增元件。
- add(字串,元件),當面板採用GardLayout佈局時,字串是引用新增元件的代號。
【例 11-4】小應用程式有兩個JPanel子類物件和一個按鈕。每個JPanel子類物件又有兩個按鈕和一個標籤。
import java.applet.*;
import javax.swing.*;
class MyPanel extends JPanel{
JButton button1,button2;
JLabel Label;
MyPanel(String s1,String s2,String s3){
//Panel物件被初始化為有兩個按鈕和一個文字框
button1=new JButton(s1);button2=new JButton(s2);
Label=new JLabel(s3);
add(button1);add(button2);add(Label);
}
}
public class J504 extends Applet{
MyPanel panel1,panel2;
JButton Button;
public void init(){
panel1=new MyPanel("確定","取消","標籤,我們在面板1中");
panel2=new MyPanel("確定","取消","標籤,我們在面板2中");
Button=new JButton("我是不在面板中的按鈕");
add(panel1);add(panel2);add(Button);
setSize(300,200);
}
}
JScrollPane
當一個容器內放置了許多元件,而容器的顯示區域不足以同時顯示所有元件時,如果讓容器帶滾動條,通過移動滾動條的滑塊,容器中位置上的元件就能看到。滾動面板JScrollPane能實現這樣的要求,JScrollPane是帶有滾動條的面板。JScrollPane是Container類的子類,也是一種容器,但是隻能新增一個元件。JScrollPane的一般用法是先將一些元件新增到一個JPanel中,然後再把這個JPanel新增到JScrollPane中。這樣,從介面上看,在滾動面板上,好像也有多個元件。在Swing中,像JTextArea、JList、JTable等元件都沒有自帶滾動條,都需要將它們放置於滾動面板,利用滾動面板的滾動條,瀏覽元件中的內容。JScrollPane類的構造方法有:
- JScrollPane(),先建立JScrollPane物件,然後再用方法setViewportView(Component com)為滾動面板物件放置元件物件。
- 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);//將含文字區的滾動面板加入到當前視窗中。