SWT(JFace)體驗(yàn)之ViewForm的使用
package swt_jface.demo9;
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.ViewForm;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Shell;
public class ViewFormExample {
Display display = new Display();
Shell shell = new Shell(display);
public ViewFormExample() {
shell.setLayout(new FillLayout());
final ViewForm viewForm = new ViewForm(shell, SWT.BORDER);
Label label = new Label(viewForm, SWT.NULL);
label.setText("Top center");
viewForm.setTopCenter(label);
shell.setSize(400, 200);
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch()) {
display.sleep();
}
}
display.dispose();
}
public static void main(String[] args) {
new ViewFormExample();
}
}
用ViewForm做布局調(diào)整
在上一步創(chuàng)建好ActionGroup中的Action后,接下來(lái)就是要在界面中加上工具欄。先要將布局用ViewForm類來(lái)調(diào)整一下,ViewForm也是繼承自Composite的一個(gè)容器。原先表格是建立在Shell之上的,現(xiàn)在要在Shell上再插入一個(gè)ViewForm容器,以它為基座將工具欄和表格創(chuàng)建于其中,如圖14.9所示。
將原主程序中的open()方法修改如下,其他代碼不變:
shell.setLayout(new FillLayout()); ViewForm viewForm = new ViewForm(shell, SWT.NONE); //布局基座ViewForm viewForm.setLayout(new FillLayout()); final TableViewer tv = new TableViewer(viewForm, SW… //父容器由shell改為viewForm //……和上一節(jié)相同的代碼(省略) //創(chuàng)建工具欄 ToolBar toolBar = new ToolBar(viewForm, SWT.FLAT); // 創(chuàng)建一個(gè)ToolBar容器 ToolBarManager toolBarManager = new ToolBarManager(toolBar); // 創(chuàng)建一個(gè)toolBar的管理器 actionGroup.fillActionToolBars(toolBarManager); //將Action通過(guò)toolBarManager注入ToolBar中 // 設(shè)置表格和工具欄在布局中的位置 viewForm.setContent(tv.getControl()); // 主體:表格 viewForm.setTopLeft(toolBar); // 頂端邊緣:工具欄 shell.open(); |
![]() |
| 圖14.9 布局示意圖 |
相關(guān)文章
淺談springboot項(xiàng)目中定時(shí)任務(wù)如何優(yōu)雅退出
這篇文章主要介紹了淺談springboot項(xiàng)目中定時(shí)任務(wù)如何優(yōu)雅退出?具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-09-09
MyBatis的?級(jí)映射及延遲加載過(guò)程詳解
這篇文章主要介紹了MyBatis的?級(jí)映射及延遲加載,包括多對(duì)一延時(shí)加載方式及一對(duì)多,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2023-02-02
如何設(shè)置Spring Boot測(cè)試時(shí)的日志級(jí)別
Spring Boot是由Pivotal團(tuán)隊(duì)提供的全新框架,其設(shè)計(jì)目的是用來(lái)簡(jiǎn)化新Spring應(yīng)用的初始搭建以及開發(fā)過(guò)程。該框架使用了特定的方式來(lái)進(jìn)行配置,從而使開發(fā)人員不再需要定義樣板化的配置。下面我們來(lái)一起學(xué)習(xí)一下吧2019-06-06
java?webservice超時(shí)時(shí)間設(shè)置方法代碼
當(dāng)我們使用WebService進(jìn)行調(diào)用時(shí),有時(shí)會(huì)出現(xiàn)超時(shí)的情況,下面這篇文章主要給大家介紹了關(guān)于java?webservice超時(shí)時(shí)間設(shè)置方法的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-01-01
Spring AspectJ 實(shí)現(xiàn)AOP的方法你了解嗎
這篇文章主要為大家介紹了Spring AspectJ 實(shí)現(xiàn)AOP的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助2022-01-01
java中BCryptPasswordEncoder密碼的加密與驗(yàn)證方式
這篇文章主要介紹了java中BCryptPasswordEncoder密碼的加密與驗(yàn)證方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-08-08
使用java實(shí)現(xiàn)LIS算法,出操隊(duì)形的問(wèn)題
下面小編就為大家?guī)?lái)一篇使用java實(shí)現(xiàn)LIS算法,出操隊(duì)形的問(wèn)題。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-09-09
SpringBoot讀取properties或者application.yml配置文件中的數(shù)據(jù)
這篇文章主要介紹了SpringBoot讀取properties或者application.yml配置文件中的數(shù)據(jù),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06


