SWT Basic Controls -- Text
Posted on 2006-03-13 16:30 fortune 閱讀(1093) 評(píng)論(1) 編輯 收藏 所屬分類: 我的學(xué)習(xí)筆記Text Hierarchy
習(xí)資料\swt教程\Addison.Wesley.Professional.SWT.The.Standard.Widget.Toolkit.Volume.1.Jun.2004.eBook-DDU.chm::/0321256638/images/0321256638/graphics/07inf07.gif)
Text Styles
Text Events
text控件支持"plain"text,這意味著text中的字符必須都是同樣的字體和顏色,如果需要 更多的功能就使用org.eclipse.swt.custom.StyledText(eclipse為用戶定制的)注意StyledText不是本地(native)控件
一共有2種類型的text控件:單行的和多行的
Single-Line and Multiline Text Controls
SWT.SINGLE
Text text = new Text(parent, SWT.SINGLE | SWT.BORDER);
text.setText("Texan");
SWT.MULTI
與單行的text不同它可以含有scroll bar (通過設(shè)置SWT.H_SCROLL or SWT.V_SCROLL )
int style =
SWT.MULTI | SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL;
Text text = new Text(parent, style);
String Operations
setText(String string)
getText()
getText(int start, int end) 獲取text的文本內(nèi)容從start到end
getCharCount() 返回字符的數(shù)目
Passwords and the Echo Character
int style = SWT.SINGLE | SWT.BORDER | SWT.PASSWORD;
Text text = new Text(parent, style);
text.setText("fred54"); //在text上不會(huì)顯示"fred54",而是以echo字符代替
注意在不同的平臺(tái)上echo字符是不同的,我們常見的密碼echo字符是“*”,可以自己設(shè)置echo字符
setEchoChar(char echo)如果設(shè)置的字符是'\0'則不再隱藏字符,當(dāng)前的字符被顯示
getEchoChar() 返回setEchoChar函數(shù)設(shè)置的echo,如果未設(shè)置則返回'\0',如果使用了SWT.PASSWORD 則返回的字符不確定
通常來說自己設(shè)置echo字符是不明智的,因?yàn)檫@是平臺(tái)look and feel的一部分。
Lines and Line Height
getLineCount() 返回行數(shù)
getLineHeight() 返回每行高度(像素)該值與字符的高度并不相同,因?yàn)樾虚g有空隙
public static void main(String[] args) {
Display display = new Display();
Shell shell = new Shell(display);
Text text = new Text(shell, SWT.H_SCROLL|SWT.V_SCROLL);
int rows = 5, columns = 10;
GC gc = new GC(text);
FontMetrics fm = gc.getFontMetrics();
gc.dispose();
int height = rows * text.getLineHeight();
int width = columns * fm.getAverageCharWidth();
text.setSize(text.computeSize (width, height));
shell.pack();
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch()) display.sleep();
}
display.dispose();
}
Line Delimiters
行定義符號(hào)
習(xí)資料\swt教程\Addison.Wesley.Professional.SWT.The.Standard.Widget.Toolkit.Volume.1.Jun.2004.eBook-DDU.chm::/0321256638/images/0321256638/graphics/07inf07.gif)
Text Styles
Style |
Description |
---|---|
SWT.SINGLE |
Allow a single line to be edited 單行 |
SWT.MULTI |
Allow multiple lines to be edited 多行 |
SWT.READ_ONLY |
Make the control noneditable 不可編輯 |
SWT.WRAP |
Allow strings to wrap instead of scrolling 自動(dòng)換行 |
SWT.LEFT |
Left-align the contents of the control 左對(duì)齊 |
SWT.CENTER |
Center-align the contents of the control 中間對(duì)齊 |
SWT.RIGHT |
Right-align the contents of the control 右對(duì)齊 |
Text Events
Event |
Description |
---|---|
SWT.DefaultSelection |
Default selection occurred (user pressed <Enter>) |
SWT.Modify |
Text has changed in the control 控件中的文本內(nèi)容發(fā)生了改變 |
SWT.Verify |
Text is to be validated in the control 文本內(nèi)容需要驗(yàn)證 |
text控件支持"plain"text,這意味著text中的字符必須都是同樣的字體和顏色,如果需要 更多的功能就使用org.eclipse.swt.custom.StyledText(eclipse為用戶定制的)注意StyledText不是本地(native)控件
一共有2種類型的text控件:單行的和多行的
Single-Line and Multiline Text Controls
SWT.SINGLE
Text text = new Text(parent, SWT.SINGLE | SWT.BORDER);
text.setText("Texan");
SWT.MULTI
與單行的text不同它可以含有scroll bar (通過設(shè)置SWT.H_SCROLL or SWT.V_SCROLL )
int style =
SWT.MULTI | SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL;
Text text = new Text(parent, style);
String Operations
setText(String string)
getText()
getText(int start, int end) 獲取text的文本內(nèi)容從start到end
getCharCount() 返回字符的數(shù)目
Passwords and the Echo Character
int style = SWT.SINGLE | SWT.BORDER | SWT.PASSWORD;
Text text = new Text(parent, style);
text.setText("fred54"); //在text上不會(huì)顯示"fred54",而是以echo字符代替
注意在不同的平臺(tái)上echo字符是不同的,我們常見的密碼echo字符是“*”,可以自己設(shè)置echo字符
setEchoChar(char echo)如果設(shè)置的字符是'\0'則不再隱藏字符,當(dāng)前的字符被顯示
getEchoChar() 返回setEchoChar函數(shù)設(shè)置的echo,如果未設(shè)置則返回'\0',如果使用了SWT.PASSWORD 則返回的字符不確定
通常來說自己設(shè)置echo字符是不明智的,因?yàn)檫@是平臺(tái)look and feel的一部分。
Lines and Line Height
getLineCount() 返回行數(shù)
getLineHeight() 返回每行高度(像素)該值與字符的高度并不相同,因?yàn)樾虚g有空隙
public static void main(String[] args) {
Display display = new Display();
Shell shell = new Shell(display);
Text text = new Text(shell, SWT.H_SCROLL|SWT.V_SCROLL);
int rows = 5, columns = 10;
GC gc = new GC(text);
FontMetrics fm = gc.getFontMetrics();
gc.dispose();
int height = rows * text.getLineHeight();
int width = columns * fm.getAverageCharWidth();
text.setSize(text.computeSize (width, height));
shell.pack();
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch()) display.sleep();
}
display.dispose();
}
Line Delimiters
行定義符號(hào)