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() |
将剪贴板上的字符粘贴到文本框 |