標籤:
在圖形介面中,文字框和文本區是用於資訊輸入輸出的組件。
文字框
文字框(JTextField)是介面中用於輸入和輸出一行文本的框。JTextField類用來建立文字框。與文字框相關的介面是ActionListener。
文字框處理常式的基本內容有以下幾個方面:
- 聲明一個文字框名。
- 建立一個文字框對象。
- 將文字框對象加入到某個容器。
- 對需要控制的文字框對象註冊監視器,監聽文字框的輸入結束(即輸入斷行符號鍵)事件。
- 一個處理文字框事件的方法,完成對截獲事件進行判斷和處理。
JTextField類的主要構造方法:
- JTextField(),文字框的字元長度為1。
- JTextField(int columns),文字框初始值為空白字串,文字框的字元長度設為columns.
- JTextField(String text),文字框初始值為text的字串。
- JTextField(String text,int columns);文字框初始值為text,文字框的字元長度為columns。
JTextField類的其他方法:
- setFont(Font f),設定字型
- setText(String text),在文字框中設定文本
- getText(),擷取文字框中的文本。
- setEditable(boolean),指定文字框的可編輯性,預設為true,可編輯。
- setHorizontalAlignment(int alignment)設定文本對齊。對齊有:JTextField.LEFT, JTextField.CENTER, JTextField.RIGHT。
- requestFocus(),設定焦點。
- addActionListener(ActionListener ),為文字框設定動作監視器,指定ActionListener對象接收該文字框上發生的輸入結束動作事件。
- removeActionListener(ActionListener)移去文字框監視器。
- getColumns(),返迴文本框的列數。
- getMinimumSize(),返迴文本框所需的最小尺寸。
- getMinimumSize(int), 返迴文本框在指定的字元數情況下,所需的最小尺寸。
- getPreferredSize(),返迴文本框希望具有的尺寸。
- getPreferredSize(int),返迴文本框在指定字元數情況下,希望具有的尺寸。
【例 11-8】小應用程式有兩個文字框。一個文本用於輸入一個整數,另一個文字框顯示這個整數的平方值。程式用字串轉基本類型的方法Long.parseLong(text1.getText()),讀取文字框text1中的字串,並將它轉換成整數。程式用Sqr類的執行個體作為監視器,但為了讓監視器能訪問主類的變數,主類中的變數被聲明為類變數,並且不設定存取權限。
1 import java.applet.*;import javax.swing.*;import java.awt.event.*; 2 public class J508 extends Applet{ 3 static JTextField text1,text2; 4 Sqr s=new Sqr();//建立監視器 5 public void init(){ 6 text1=new JTextField(10); 7 text2=new JTextField(10); 8 add(text1); 9 add(text2);10 text1.addActionListener(s);//類Sqr的執行個體s作為text1的監視器11 }12 }13 class Sqr implements ActionListener{14 public void actionPerformed(ActionEvent e){//實現介面ActionListener15 if(e.getSource()==J508.text1){16 long n=Long.parseLong(J508.text1.getText());17 //將text1的文本轉換成long型資料18 J508.text2.setText(String.valueOf(n*n));19 //將n*n轉化為字串20 }21 else{}22 }23 }
密碼框(JPasswordField)是一個單行的輸入組件,與JTextField基本類似。密碼框多一個屏蔽功能,就是在輸入時,都會以一個別的指定的字元(一般是*字元)輸出。除了前面介紹的文字框的方法外,另有一些密碼框常用的方法:
- getEchoChar(),返回密碼的回顯字元。
- setEchoChar(char),設定密碼框的回顯字元。
文本區
文本區(JTextArea)是表單中一個放置文本的地區。文本區與文字框的主要區別是文本區可存放多行文本。javax.swing包中的JTextArea類用來建立文本區。JTextArea組件沒有事件。
文本區處理常式的基本內容有以下幾個方面:
- 聲明一個文本區名。
- 建立一個文本區對象。
- 將文本區對象加入到某個容器。
JTextArea類的主要構造方法:
- JTextArea(),以預設的列數和行數,建立一個文本區對象。
- JTextArea(String s),以s為初始值,建立一個文本區對象。
- JTextArea(Strings ,int x,int y),以s為初始值,行數為x,列數為y,建立一個文本區對象。
- JTextArea(int x,int y)以行數為x,以列數為y,建立一個文本區對象。
JTextArea類的其他常用方法:
- setText(String s),設定顯示文本,同時清除原有文本。
- getText(),擷取文本區的文本。
- insert(String s,int x),在指定的位置插入指定的文本。
- replace(String s,int x,int y),用給定的一替換從x位置開始到y位置結束的文本。
- append(String s),在文本區追加文本。
- getCarePosition(),擷取文本區中活動游標的位置。
- setCarePosition(int n),設定活動游標的位置。
- setLineWrap(boolean b),設定自動換行,預設情況,不自動換行。
以下代碼建立一個文本區,並設定能自動換行。
JTextArea textA = new JTextArea(“我是一個文本區”,10,15);
textA.setLineWrap(true);//設定自動換行
當文本區中的內容較多,不能在文本區全部顯示時,可給文本區配上捲軸。給文本區設定捲軸可用以下代碼:
1 JTextArea ta = new JTextArea();2 JScrollPane jsp = new JScrollPane(ta);//給文本區添加捲軸
系列文章:
Java知多少(上)Java知多少(中)Java知多少(78)Java向量(Vector)及其應用Java知多少(79)雜湊表及其應用Java知多少(80)圖形介面設計基礎Java知多少(81)架構視窗基礎Java知多少(82)標籤、按鈕和按鈕事件簡介Java知多少(83)面板基礎:JPanel和JScrollPaneJava知多少(84)圖形介面之布局設計
Java知多少(85)文字框和文本區