Java介面 SWT基本元件——文字框(Text)
阿新 • • 發佈:2019-02-17
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();
樣式常量 | 描述 |
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 | 帶有垂直滾動條的多行文字框 |
方法 | 含義 |
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() | 獲得文字框內字串的長度 |
方法 | 含義 |
selectAll() | 選中所有的字元 |
setSelection(int start)/(int start, int end)/(Point selection) | 選中指定字元 |
showSelection() | 顯示所設定的選取文字 |
clearSelection() | 取消所有選擇 |
Point getSelection() | 取得所選中文字的開始位置和結束位置 |
getSelectionCount() | 取得所選取的字串長度 |
String getSelectionText() | 取得所選的字串 |
copy() | 將選取的字串複製到剪貼簿 |
cut() | 將選取的字串剪下到剪貼簿 |
paste() | 將剪貼簿上的字元貼上到文字框 |