Java界面 SWT基本组件——文本框(Text)

时间:2021-04-11 22:20:42

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();
Java界面 SWT基本组件——文本框(Text)

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