1. 程式人生 > >Java介面 SWT基本元件——文字框(Text)

Java介面 SWT基本元件——文字框(Text)

SWT 中文字框(Text)的基本型別與基礎應用

文字框是常見的控制元件之一,是可以輸入文字的控制元件。 文字框有單行文字框(SWT.SINGLE)和多行文字框(SWT.MULTI)兩種,包含可編輯的文字框與只讀的文字框。 本次試驗通過一個小程式來說明一個文字框常用的方法。該程式類似編輯器的功能,具有對文字進行全選、使用剪貼簿功能的複製和貼上功能、 程式碼如下:
shell.setSize(350, 283);
shell.setText("SWT.TextSample");
//shell.setLayout(new FillLayout(SWT.VERTICAL));	
					
final Text content = new Text(shell, SWT.WRAP|SWT.V_SCROLL);
								// 多行文字框,可自動換行 | 垂直滾動條
content.setBounds(10, 8, 325, 210);
								// (x, y, width, height)
// 全選按鈕
Button selectAll = new Button(shell, SWT.CENTER);
selectAll.setText("Select All");
selectAll.setBounds(5, 225, 80, 25);
								// (x, y, width, height)
selectAll.addSelectionListener(new SelectionAdapter() {
	public void widgetSelected(SelectionEvent e){
		// 選中所有文字
		content.selectAll();
	}
});
// 取消選擇按鈕
Button cancel = new Button(shell, SWT.CENTER);
cancel.setText("Cancel Select");
cancel.setBounds(90, 225, 80, 25);
								// (x, y, width, height)
cancel.addSelectionListener(new SelectionAdapter() {
	public void widgetSelected(SelectionEvent e){
		// 如果有選中的文字
		if(content.getSelectionCount() > 0)
								// 如選中文字長度不為零
			content.clearSelection();
								// 清楚選擇
	}
});
// 複製按鈕
Button copy = new Button(shell, SWT.CENTER);
copy.setText("Copy");
copy.setBounds(175, 225, 80, 25);
								// (x, y, width, height)
copy.addSelectionListener(new SelectionAdapter() {
	public void widgetSelected(SelectionEvent e){
		// 將選取的字串複製到剪貼簿
		if(content.getSelectionCount() > 0)
			content.copy();
	}
});
// 貼上按鈕
// 全選按鈕
Button paste = new Button(shell, SWT.CENTER);
paste.setText("Paste");
paste.setBounds(260, 225, 80, 25);
								// (x, y, width, height)
paste.addSelectionListener(new SelectionAdapter() {
	public void widgetSelected(SelectionEvent e){
		// 將剪貼闆闆的內容貼上
		content.paste();
	}
});


shell.layout();
shell.open();

Text 類所使用的樣式常量
樣式常量 描述
SWT.SINGLE 單行文字框,如果不指定SWT.SINGL或SWT.MULTI,預設為單行文字框
SWT.NONE 沒有邊框的文字框
SWT.BORDER 帶有邊框的文字框
SWT.LEFT 文字框字元靠左對齊,預設樣式
SWT.CENTER 文字框字元居中對齊
SWT.RIGHT 文字框字元靠右對齊
SWT.READ_ONLY 只讀文字框
SWT.PASSWORD 密碼輸入框
SWT.MULTI 可輸入多行文字的文字框
SWT.WRAP 多行文字框,且自動換行
SWT.H_SCROLL 帶有水平滾動條的多行文字框
SWT.V_SCROLL 帶有垂直滾動條的多行文字框

Text有關本文的方法
方法 含義
setTextLimit(int limit) 設定文字長度(文字最大長度)
setEditable(boolean editable) 設定文字是否可編輯,false 則不可編輯
setOrientation(int orientation) 設定輸入文字方向:SWT.RIGHT_TO_LEFT,SWT.LEFT_TO_RIGHT
setEchoChar(char echo) 設定文字輸入字元的格式:setEchoChar("*");
setTabs(int tabs) 設定輸入Tab鍵時退格的字串
append(String string) 向文字中插入字串的方法
getCharCount() 獲得文字框內字串的長度

Text有關選擇文字操作的方法
方法 含義
selectAll() 選中所有的字元
setSelection(int start)/(int start, int end)/(Point selection) 選中指定字元
showSelection() 顯示所設定的選取文字
clearSelection() 取消所有選擇
Point getSelection() 取得所選中文字的開始位置和結束位置
getSelectionCount() 取得所選取的字串長度
String getSelectionText() 取得所選的字串
copy() 將選取的字串複製到剪貼簿
cut() 將選取的字串剪下到剪貼簿
paste() 將剪貼簿上的字元貼上到文字框