java swt 控件一(文本框)

来源:互联网 发布:linux下连接数据库 编辑:程序博客网 时间:2024/06/02 05:52

SWT 中文本框(Text)的基本类型与基础应用

文本框是常见的控件之一,是可以输入文字的控件。
文本框有单行文本框(SWT.SINGLE)和多行文本框(SWT.MULTI)两种,包含可编辑的文本框与只读的文本框。
本次试验通过一个小程序来说明一个文本框常用的方法。该程序类似编辑器的功能,具有对文本进行全选、使用剪贴板功能的复制和粘贴功能、
代码如下:
[java] view plain copy
  1. shell.setSize(350283);  
  2. shell.setText("SWT.TextSample");  
  3. //shell.setLayout(new FillLayout(SWT.VERTICAL));      
  4.                       
  5. final Text content = new Text(shell, SWT.WRAP|SWT.V_SCROLL);  
  6.                                 // 多行文本框,可自动换行 | 垂直滚动条  
  7. content.setBounds(108325210);  
  8.                                 // (x, y, width, height)  
  9. // 全选按钮  
  10. Button selectAll = new Button(shell, SWT.CENTER);  
  11. selectAll.setText("Select All");  
  12. selectAll.setBounds(52258025);  
  13.                                 // (x, y, width, height)  
  14. selectAll.addSelectionListener(new SelectionAdapter() {  
  15.     public void widgetSelected(SelectionEvent e){  
  16.         // 选中所有文本  
  17.         content.selectAll();  
  18.     }  
  19. });  
  20. // 取消选择按钮  
  21. Button cancel = new Button(shell, SWT.CENTER);  
  22. cancel.setText("Cancel Select");  
  23. cancel.setBounds(902258025);  
  24.                                 // (x, y, width, height)  
  25. cancel.addSelectionListener(new SelectionAdapter() {  
  26.     public void widgetSelected(SelectionEvent e){  
  27.         // 如果有选中的文本  
  28.         if(content.getSelectionCount() > 0)  
  29.                                 // 如选中文本长度不为零  
  30.             content.clearSelection();  
  31.                                 // 清楚选择  
  32.     }  
  33. });  
  34. // 复制按钮  
  35. Button copy = new Button(shell, SWT.CENTER);  
  36. copy.setText("Copy");  
  37. copy.setBounds(1752258025);  
  38.                                 // (x, y, width, height)  
  39. copy.addSelectionListener(new SelectionAdapter() {  
  40.     public void widgetSelected(SelectionEvent e){  
  41.         // 将选取的字符串复制到剪贴板  
  42.         if(content.getSelectionCount() > 0)  
  43.             content.copy();  
  44.     }  
  45. });  
  46. // 粘贴按钮  
  47. // 全选按钮  
  48. Button paste = new Button(shell, SWT.CENTER);  
  49. paste.setText("Paste");  
  50. paste.setBounds(2602258025);  
  51.                                 // (x, y, width, height)  
  52. paste.addSelectionListener(new SelectionAdapter() {  
  53.     public void widgetSelected(SelectionEvent e){  
  54.         // 将剪贴板板的内容粘贴  
  55.         content.paste();  
  56.     }  
  57. });  
  58.   
  59.   
  60. shell.layout();  
  61. 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_RIGHTsetEchoChar(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()将剪贴板上的字符粘贴到文本框