亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

Swt/Jface中提供的dialog

系統(tǒng) 2134 0

Swt/Jface中提供了各種各樣的Dialog,一般情況下就能滿足我們的需求,現(xiàn)在把這些dialog介紹一下,
下一篇文章再繼續(xù)將如何自定義Dialog
一、MessageDialog
1,MessageDialog的用法很簡單,只需要一句話.


MessageDialog.openInfomation(shell,title,message);
MessageDialog.openConfirm(shell,title,message);
MessageDialog.openQuestion(shell,title,message);
MessageDialog.openError(shell,title,message);

2,這四個(gè)的不同之處有三點(diǎn):
????????????????????????????? 提示的圖標(biāo)、?????????????? ?? 顯示的按鈕、???????????????????? 返回值
openInfomation?????? 類似i的圖標(biāo)??????????????????? ?一個(gè)確定???????????????????????????? void
openConfirm?????????? 問號(hào)圖標(biāo)????????????????????????? 確定和取消??????????????????????? boolean
openQuestion??????????問號(hào)圖標(biāo)???????????????????????? 是和否???????????????????????????????? boolean
openError????????????? ?一個(gè)X的圖標(biāo)???????????????????確定??????????????????????????????????? ?void

最后說一下,MessageDialog的大小不能根據(jù)內(nèi)容自動(dòng)調(diào)整,對(duì)于少量提示信息的時(shí)候顯得大了些。
3,InputDialog輸入的dialog
使用方法:

InputDialog?inputDialog? = ? new ?InputDialog(shell, " 標(biāo)題 " , " 提示信息 " , " 默認(rèn)值 " , null );
if (inputDialog.open()? == ?InputDialog.OK) {
????String?value?
= ?dialog.getValue();
}

注意最后一個(gè)參數(shù)是"驗(yàn)證器",如果想驗(yàn)證數(shù)據(jù)可以提供一個(gè)驗(yàn)證器,并在這里使用。驗(yàn)證其的寫法:

public ? class ?MyValidator? implements ?IInputValidaor {
????
public ?String?isValid(String?newText) {
????????
float ?value? = ? 0 ;
????????
try {
????????????value?
= ?Float.valueOf(newText).floatValue();
????????}
catch (NumberFormatException?e) {
????????????
return ? " 錯(cuò)誤:請(qǐng)輸入數(shù)值 " ;
????????}

????????
if (value > 0 ? && ?value < 100 ) {
????????????
return ? null ;
????????}
else {
????????????
return ? " 錯(cuò)誤:請(qǐng)輸入大于0,小于100的數(shù) " ;
????????}

????}

}


然后改寫定義語句為

InputDialog?inputDialog? = ? new ?InputDialog(shell, " 標(biāo)題 " , " 提示信息 " , " 默認(rèn)值 " , new ?MyValidator());

二、上邊說了MessageDialog不能自動(dòng)調(diào)整大小,那什么能自動(dòng)調(diào)整大小呢?答案是MessageBox.
同樣繼承自Dialog.
1,使用方法:MessageBox的使用方法稍微復(fù)雜,需要3句

MessageBox?mb? = ? new ?MessageBox(shell);
mb.setMessage(
" 提示信息 " );
mb.open();

2,MessageBox同樣可以控制圖標(biāo)和按鈕數(shù)
是通過new的時(shí)候加入式樣來實(shí)現(xiàn)的,例如

MessageBox?mb? = ? new ?MessageBox(shell,SWT._ICON_QUEST | SWT.YES | SWT.NO);

做過SWT開發(fā)的人對(duì)這種格式應(yīng)該不陌生,到處都是。

圖標(biāo)的種類:
SWT.ICON_ERROR
SWT.ICON_INFORMATION
SWT.ICON_QUESTION
SWT.ICON_WARNING

按鈕的組合:
SWT.OK
SWT.OK|SWT.CANCEL
SWT.YES|SWT.NO
SWT.YES|SWT.NO|SWT.CANCEL
SWT.RETRY|SWT.CANCEL
SWT.ABORT|SWT.RETRY|SWT.IGNORE
仔細(xì)看一下就是我們平時(shí)經(jīng)??吹降母鞣N對(duì)話框。
三、顏色選擇對(duì)話框
不多說,使用方法幾乎在swt中遍地都是的用法。

ColorDialog?dialog? = ? new ?ColorDialog(shell);
RGB?rgb?
= ?dialog.open();
if (rgb? != ? null ) {
????Color?color?
= ? new ?Color(shell.getDisplay(),rgb);
}


注意color使用過后要dispose();
四、字體選擇對(duì)話框
有了上邊的一些經(jīng)驗(yàn)其實(shí)在有eclipse這種編輯器的幫助下猜著就可以寫了

FontDialog?dialog? = ? new ?FontDialog(shell);
FontData?fontData?
= ?dialog.open();
if ?(fontDate? != ? null ) {
????Font?font?
= ? new ?Font(shell.getDisplay(),fontData);
}


同樣在結(jié)束后font.dispose();
五、打印對(duì)話框,同上的使用方法,同上的需要dispose

PrintDialog?dialog? = ? new ?PrintDialog(shell);
PrintData?printData?
= ?dialog.open();
if ?(printDate? != ? null ) {
????Printer?printer?
= ? new ?Printer(printerData);
}


六、文件選擇對(duì)話框:同上
1,實(shí)現(xiàn)方法

FileDialog?dialog? = ? new ?FileDialog(shell,SWT.OPEN);
dialog.setFilterPath(
" c:\windows " ); // 設(shè)置初始路徑
String?fileName? = ?dialog.open(); // 返回的全路徑(路徑+文件名)

2,如果想選擇多個(gè)文件,加上SWT.MULTI

FileDialog?dialog? = ? new ?FileDialog(shell,SWT.OPEN | SWT.MULTI);
String?fileName?
= ?dialog.open(); // 返回最后一個(gè)選擇文件的全路徑
String[]?fileNames? = ?dialog.getFileNames(); // 返回所有選擇的文件名,不包括路徑
String?path? = ?dialog.getFilterPath();返回選擇的路徑,這個(gè)和fileNames配合可以得到所有的文件的全路徑

3,加入filter

FileDialog?dialog? = ? new ?FileDialog(shell,SWT.OPEN | SWT.NULTI);
dialog.setFilterNames(
new ?String[] { " 可執(zhí)行文件(*.exe), " Excel( * .xls), " 所有文件 "" });
dialog.setFilterExtensions( new ?String[] { " *.exe " , " *.xls " , " *.* " } );
// 接受方法同2中的寫法,不同就是加入了過濾器。

4,保存對(duì)話框
保存對(duì)話框并不提供保存功能,這個(gè)需要自己實(shí)現(xiàn),它只提供界面,并得到用戶選擇的目錄和輸入的文件名

FileDialog?dialog? = ? new ?FileDialog(shell,SWT.SAVE);
String?fileName?
= ?dialog.open();

Swt/Jface中提供的dialog


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會(huì)非常 感謝您的哦?。。?/p>

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 中文字幕亚洲综合久久菠萝蜜 | 国产精品高清免费网站 | 久久精品国产波多野结衣 | 成年女人色毛片 | 一级一级一级毛片 | 久久99国产精品二区不卡 | 一区二区视频在线播放 | 四虎在线网站 | 亚洲精品国产经典一区二区 | 亚洲一二三区在线观看 | 免费不卡中文字幕在线 | 国产婷婷色一区二区三区 | 成人网18免费网站 | 国产第一亚洲 | 免费观看一级特黄三大片视频 | 久久精品亚洲欧美日韩久久 | 日韩 亚洲 中文 图片 小说 | 国产福利一区视频 | 日本不卡在线一区二区三区视频 | 日韩免费大片 | 国产精品久久久久久久 | 九九久久九九久久 | 看真人视频一一级毛片 | 日韩综合 | 日韩欧美在线中文字幕 | 国产精品久久久久久久 | 黄色影院免费观看 | 91综合精品网站久久 | 成人在线视频网 | 看一级特黄a大片日本片黑人 | 国产国产精品人在线观看 | 久久久久综合中文字幕 | 亚洲国产精品久久久久婷婷软件 | 日韩久久中文字幕 | 美女18毛片免费视频 | 91手机看片国产永久免费 | 国产一区私人高清影院 | 99精品国产成人一区二区在线 | 5g国产精品影院天天5g天天爽 | 中文字幕国产在线 | 在线 | 一区二区三区四区 |