天天看點

javaGUI學習26:AWT-文本構件

在AWT中,有兩類構件可以用來顯示可編輯文本,即TextArea和’TextField。構件TextField所編輯的對象是單行文本,而構件TextArea則是多行文本域,該構件可以作為一個簡單的文本編輯器。

1、java.awt.TextComponent

TextField 和TextArea都擴充TextComponent類。TextComponent是單獨存在的,其作用是為TextArea 和TextField提供基本的文本編輯能力。

TextComponent提供下面的功能:

  • 擷取設定文本
  • 擷取設定選擇的文本
  • 擷取設定編輯模式
  • 安置插入符号

方法:

void addNotify() //通過将此元件連接配接到本機螢幕資源,可以顯示此元件。  
void addTextListener(TextListener l) //添加指定的文本事件偵聽器以從此文本元件接收文本事件。  
void enableInputMethods(boolean enable) //啟用或禁用此文本元件的輸入法支援。  
AccessibleContext getAccessibleContext() //擷取與此TextComponent關聯的AccessibleContext。  
Color getBackground() //擷取此文本元件的背景顔色。  
int getCaretPosition() //傳回文本插入插入符的位置。  
<T extends EventListener>
T[] getListeners(類<T> listenerType) //傳回目前注冊的所有對象的數組 FooListener在這個S TextComponent 。  
String getSelectedText() //傳回此文本元件顯示的文本中的標明文本。  
int getSelectionEnd() //擷取此文本元件中所選文本的結束位置。  
int getSelectionStart() //擷取此文本元件中所選文本的起始位置。  
String getText() //傳回此文本元件顯示的文本。  
TextListener[] getTextListeners() //傳回在此文本元件上注冊的所有文本偵聽器的數組。  
boolean isEditable() //訓示此文本元件是否可編輯。  
protected String paramString() //傳回表示此 TextComponent的狀态的字元串。  
protected void processEvent(AWTEvent e) //處理此文本元件上的事件。  
protected void processTextEvent(TextEvent e) //處理在此文本元件上發生的文本事件,方法是将它們分派給任何已注冊的 TextListener對象。  
void removeNotify() //删除了 TextComponent的同行。  
void removeTextListener(TextListener l) //删除指定的文本事件偵聽器,使其不再接收來自此文本元件的文本事件。如果 l為 null ,則不會引發異常并且不執行任何操作。  
void select(int selectionStart, int selectionEnd) //選擇指定的開始和結束位置之間的文本。  
void selectAll() //選擇此文本元件中的所有文本。  
void setBackground(Color c) //設定此文本元件的背景顔色。  
void setCaretPosition(int position) //設定文本插入插入符的位置。  
void setEditable(boolean b) //設定用于确定此文本元件是否可編輯的标志。  
void setSelectionEnd(int selectionEnd) //将此文本元件的選擇結束設定為指定位置。  
void setSelectionStart(int selectionStart) //将此文本元件的選擇開始設定為指定位置。  
void setText(String t) //将此文本元件顯示的文本設定為指定的文本。  
           
1.1 TextComponet監聽者

在預設的情況下,文本構件接受焦點。結果,除了激發被所有構件都激發的事件外,還激發鍵盤和焦點事件(請參見11.13節“構件和國際化”中的内容)。文本構件也激發文本事件,并支援增加和删除文本監聽者。文本在任何時候發生改變,都将通知文本監聽者。

2、java.awt.TextField

構造方法:

TextField() //構造一個新的文本字段。  
TextField(int columns) //構造具有指定列數的新空文本字段。  
TextField(String text) //構造使用指定文本初始化的新文本字段。  
TextField(String text, int columns) //構造一個使用要顯示的指定文本初始化的新文本字段,并且寬度足以容納指定數量的列。  
           

方法:

int getColumns() //擷取此文本字段中的列數。
void setColumns(int columns) //設定此文本字段中的列數。 
char getEchoChar() //擷取要用于回顯的字元。
void setEchoChar(char c) //設定此文本字段的回顯字元。  
boolean echoCharIsSet() //訓示此文本字段是否具有用于回顯的字元集。
void addActionListener(ActionListener l) //添加指定的操作偵聽器以從此文本字段接收操作事件。
void removeActionListener(ActionListener l) //删除指定的操作偵聽器,以便它不再從此文本字段接收操作事件。  
           

3、退出有效性

當想要離開文本框時,要麼通過按下TAB鍵或者回車或者用滑鼠退出,使用一個檢測确定在左邊的文本框中輸人的資料是有效的整數。如果不是,則焦點将回到左邊的文本框,然後文本框中所有的文本被標明并要求重新輸入整數。

4、過程中确認

在該方案中,包含監測擊鍵和不允許非法字元串顯示。這是很有意思的,該方法在以前版本的AWT中是不能使用的,因為你不可能阻止事件傳遞給構件的同位體。輸入事件可以通過調用InputEvent . consume ()方法被消耗掉。

5、java.awt.TextArea

構造方法:

TextArea() //構造一個新的文本區域,将空字元串作為文本。  
TextArea(int rows, int columns) //構造具有指定行數和列數的新文本區域,将空字元串構造為文本。  
TextArea(String text) //使用指定的文本構造一個新的文本區域。  
TextArea(String text, int rows, int columns) //使用指定的文本構造一個新的文本區域,并使用指定的行數和列數。  
TextArea(String text, int rows, int columns, int scrollbars) //構造具有指定文本的新文本區域,并指定行,列和滾動條可見性。  
           

字段:

static int SCROLLBARS_BOTH //建立并顯示垂直和水準滾動條。  
static int SCROLLBARS_HORIZONTAL_ONLY //僅建立和顯示水準滾動條。  
static int SCROLLBARS_NONE //不要為文本區域建立或顯示任何滾動條。  
static int SCROLLBARS_VERTICAL_ONLY //僅建立和顯示垂直滾動條。  
           

方法:

void append(String str) //将給定文本追加到文本區域的目前文本。  
AccessibleContext getAccessibleContext() //傳回與 AccessibleContext相關聯的 TextArea 。  
int getColumns() //傳回此文本區域中的列數。  
Dimension getMinimumSize() //确定此文本區域的最小大小。  
Dimension getMinimumSize(int rows, int columns) //确定具有指定行數和列數的文本區域的最小大小。  
Dimension getPreferredSize() //确定此文本區域的首選大小。  
Dimension getPreferredSize(int rows, int columns) //确定具有指定行數和列數的文本區域的首選大小。 
int getRows() //傳回文本區域中的行數。  
int getScrollbarVisibility() //傳回一個枚舉值,訓示文本區域使用的滾動條。  
void insert(String str, int pos) //将指定文本插入此文本區域中的指定位置。   
protected String paramString() //傳回表示此 TextArea的狀态的字元串。   
void replaceRange(String str, int start, int end) //用指定的替換文本替換訓示的開始和結束位置之間的文本。    
void setColumns(int columns) //設定此文本區域的列數。  
void setRows(int rows) //設定此文本區域的行數。