SWT實現狀態列和進度條

2021-04-12 14:34:48 字數 2341 閱讀 8016

實現功能如下:

q 如何建立乙個簡單的狀態列(基於rcp平台能夠直接使用它的進度條服務)

q 如何在狀態列中動態建立進度條,同時如何用完後銷毀它。

q 如何用exclude屬性、setvisible和layout方法來動態顯示/隱藏面板或元件。

q 再次表明在乙個執行緒thread裡呼叫swt元件都要用display.asyncexec()包裝一下,而且還要在使用元件前對其是否被銷毀做判斷

圖13.2 狀態列裡的進度條

import org.eclipse.swt.swt;

import org.eclipse.swt.events.selectionadapter;

import org.eclipse.swt.events.selectionevent;

import org.eclipse.swt.layout.griddata;

import org.eclipse.swt.layout.gridlayout;

import org.eclipse.swt.layout.rowdata;

import org.eclipse.swt.layout.rowlayout;

import org.eclipse.swt.widgets.button;

import org.eclipse.swt.widgets.composite;

import org.eclipse.swt.widgets.display;

import org.eclipse.swt.widgets.label;

import org.eclipse.swt.widgets.progressbar;

import org.eclipse.swt.widgets.shell;

publicclassprogressbar3

privatevoidopen()

display.dispose();

}privatevoidcreatemaincomp(composite parent)

privatevoidcreatebutton(composite parent)

});hideprobarbutton =newbutton(parent, swt.none

);hideprobarbutton.settext("

隱藏進度條

");hideprobarbutton.setenabled(false);

hideprobarbutton.addselectionlistener(newselectionadapter()

});finalbutton b3 =newbutton(parent, swt.none

);b3.settext(" go ");

b3.addselectionlistener(newselectionadapter()

privatevoidstop()

privatevoidgo()

moveprogressbar(i);

trycatch(throwable e2) {} //

停一秒

}disposeprogressbar();

}privatevoidmoveprogressbar(finalinti)

});}

privatevoiddisposeprogressbar()

});}

}.start();

}});

}privatevoidcreatestatusbar(composite parent)

//建立進度條

privateprogressbar createprogressbar(composite parent) }  

SWT的狀態列和進度條的例項

很久沒更新了,最近忙著寫 eclipse從入門到精通 的第二版,因為swt api變化的原因,程式全驗證了一篇,有些例項重寫了,還增加了很多內容。這裡是新增的乙個例項,於乙個讀者的提問。這一節將實現乙個如圖13.2所示的例項。為了能看清更面板的框架,把面板都設成了邊框型。例項有以下內容 q 如何建立...

在狀態列動態加進度條

一般情況下,我們可以建立非模式對話方塊並在上面顯示進度條。如果能夠利用狀態條,在狀態條中動態地新增並顯示進度條,將會更加方便直觀。下面將講述如何在delphi 5中程式設計實現在狀態條中動態地新增進度條。具體的過程如下 2 在窗體中新增乙個狀態列元件statusbar1,乙個button元件butt...

狀態列中新增進度條

將進度條新增到狀態列中不是很困難,只要幾步就可以了 1.建立乙個form工程,在窗體上新增乙個狀態列stat,新增乙個進度條progressbar1 2.為了演示進度情況,再新增乙個timer1 3.在stat的屬性中,將showpanels設為true 4.在stat的panels屬性中新增乙個s...