国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
Swt常用控件中文教程
1、Eclipse中swt的配置
建議配置:jdk1.4.2以及eclipse3.1
在代碼中調(diào)用swt控件之前,首先建立一個項(xiàng)目,然后選擇該項(xiàng)目的properties -> Java Build Path,將standard Widget ToolKit加入到Library頁當(dāng)中。如下圖所示:
接下來可以建立第一個eclipse小程序,新建一個class,并且在該class所對應(yīng)的代碼中輸入如下程序,其中package以及class名稱根據(jù)實(shí)際情況來確定名稱。
package mypakage;
import org.eclipse.swt.widgets.*;
import org.eclipse.swt.*;
/*導(dǎo)入需要的類庫*/
public class Myfrm1 {
public Myfrm1() {
super();
}
public static void main(String[] args) {
Display display = new Display();
Shell shell = new Shell(display);
/*shell為一個窗口對象*/
Label label = new Label(shell, SWT.NONE);
label.setText("Hello, World!"); /*創(chuàng)建一個標(biāo)簽對象并且設(shè)置標(biāo)題文字*/
label.pack();
shell.pack();
shell.open(); /*打開并顯示窗口*/

while(!shell.isDisposed())
if(!display.readAndDispatch())
display.sleep(); /*在窗口沒有銷毀之前,顯示對象一直處于等待狀態(tài)*/

display.dispose(); /*否則,銷毀對象,釋放對象所占據(jù)的資源*/
label.dispose();
}
}

運(yùn)行上述代碼(run -> debug -> swt application)將產(chǎn)生如下所示的一個窗口

2、button的使用
按鈕可能的類型有很多,例如:
SWT.BORDER 含有邊框的按鈕

SWT.CHECK 復(fù)選按鈕

SWT.PUSH 普通按鈕

SWT.RADIO 單選按鈕

3、Text的使用
文本框的類型也有很多種選擇,例如:
SWT.BORDER 含有邊框

SWT.READ_ONLY 只讀

下圖為包含按鈕以及文本框的窗口


設(shè)計(jì)上述窗口所對應(yīng)的代碼為:
package mypakage;
import org.eclipse.swt.widgets.*;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.*;
import org.eclipse.swt.layout.*;
public class Myfrm1 {
public Myfrm1() {
super();
}
public static void main(String[] args) {
Display display = new Display( );
Shell shell = new Shell(display);
shell.setSize(300, 200);
shell.setLayout(new RowLayout( ));
shell.setText("Button Example");
final Button button = new Button(shell, SWT.BORDER);
button.setText("Click Me");
final Text text = new Text(shell, SWT.BORDER);
shell.open( );

while(!shell.isDisposed( )) {
if(!display.readAndDispatch( )) display.sleep( );
}
display.dispose( );
}
}

如果想對控件的位置以及大小進(jìn)行精確的設(shè)置,可以使用setBounds(x, y, width, height)方法來取代shell.setLayout(new RowLayout( ))。例如:button.setBounds(80, 80, 90, 20);

button的監(jiān)聽及事件處理
對按鈕單擊事件處理的代碼:
button.addSelectionListener(new SelectionListener( )
{
public void widgetSelected(SelectionEvent event)
{
text.setText("No worries!");
}
public void widgetDefaultSelected(SelectionEvent event)

{
text.setText("No worries!");
}
});

將以上代碼加入到shell.open之前,當(dāng)點(diǎn)擊按鈕時產(chǎn)生以下效果:


分析:由于為button按鈕增加了一個監(jiān)聽器,按鈕時刻處于被“監(jiān)控”的狀態(tài),當(dāng)按鈕控件被選擇(點(diǎn)擊)既選擇事件發(fā)生時,對文本控件進(jìn)行賦值”No worries”。

根據(jù)監(jiān)聽事件的原理,設(shè)計(jì)如下程序,該程序能夠獲得鼠標(biāo)的X坐標(biāo),顯示在文本框中:

package mypakage;
import org.eclipse.swt.widgets.*;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.*;
import org.eclipse.swt.layout.*;

public class Myfrm1 {
public Myfrm1() {
super();
}
public static void main(String[] args) {
Display display = new Display( );
Shell shell = new Shell(display);
shell.setSize(300, 200);
shell.setLayout(new RowLayout( ));
final Text text = new Text(shell, SWT.SHADOW_IN);

shell.addMouseMoveListener(new MouseMoveListener( )
{
public void mouseMove(MouseEvent e)
{
Integer y=new Integer(e.x); /*將x坐標(biāo)轉(zhuǎn)換為Integer類型的對象*/
text.setText(y.toString());
}
});

shell.open( );
while(!shell.isDisposed( )) {
if(!display.readAndDispatch( )) display.sleep( );
}
display.dispose( );
}
}

監(jiān)聽方式:
ControlListener 用于處理移動以及尺寸變化

FocusListener 用于處理得到焦點(diǎn)以及失去焦點(diǎn)

KeyListener 處理按鍵的輸入

MouseListener , MouseMoveListener, MouseTrackListener 對鼠標(biāo)的動作進(jìn)行處理

SelectionListener 處理控件的選擇行為(包括按鈕的點(diǎn)擊)

注意:監(jiān)聽方式與其所能夠處理的事件具有一定的關(guān)聯(lián)性,既監(jiān)聽方式?jīng)Q定了所能夠處理事件的種類,例如:

shell.addMouseListener(new MouseListener( )
{
public void mouseMove(MouseEvent e)
{text.setText("mousemove");}
public void mouseDoubleClick(MouseEvent e)
{text.setText("mousedbclc");}
public void mouseDown(MouseEvent e)
{}
public void mouseUp(MouseEvent e)
{}
});

你會發(fā)現(xiàn)在鼠標(biāo)移動時,text.setText("mousemove");始終不能夠執(zhí)行;并且mouseDown、mouseUp事件不能夠省略,原因就在于MouseListener只能處理mouseDoubleClick、mouseDown、mouseUp三類事件,而且這三類事件不能夠分離。

3、List控件
List控件的樣式包括:
SWT.BORDER 含有邊框

SWT.H_SCROLL 含有水平滾動條

SWT.V_SCROLL 含有垂直滾動條

SWT.SINGLE 允許單選

SWT.MULTI 允許復(fù)選

若要創(chuàng)建一個含有從11個元素的List,可以通過以下代碼來實(shí)現(xiàn)
final List list = new List (shell, SWT.SINGLE);
for (int i=0;i<=10;i++)
list.add("item"+i);



以下實(shí)例能夠判斷List控件中所選擇的選項(xiàng),并且輸出顯示在控制臺中:
package mypakage;
import org.eclipse.swt.widgets.*;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.*;
import org.eclipse.swt.layout.*;
public class Myfrm1 {
public Myfrm1() {
super();
}
public static void main(String[] args) {
Display display = new Display ( );
Shell shell = new Shell (display);
shell.setText("List Example");
shell.setSize(300, 200);
shell.setLayout(new FillLayout(SWT.VERTICAL));
final List list = new List (shell, SWT.BORDER | SWT.MULTI | SWT.V_SCROLL);
for (int loopIndex = 0; loopIndex < 100; loopIndex++){
list.add("Item " + loopIndex);
}
list.addSelectionListener(new SelectionListener( )
{
public void widgetSelected(SelectionEvent event)
{
int selections[] = list.getSelectionIndices ( );
String outText = "";
for (int loopIndex = 0; loopIndex < selections.length;
loopIndex++) outText += selections[loopIndex] + " ";
System.out.println ("You selected: " + outText);
}
public void widgetDefaultSelected(SelectionEvent event)
{
int [] selections = list.getSelectionIndices ( );
String outText = "";
for (int loopIndex = 0; loopIndex < selections.length; loopIndex++)
outText += selections[loopIndex] + " ";
System.out.println ("You selected: " + outText);
}
});
shell.open ( );
while (!shell.isDisposed ( )) {
if (!display.readAndDispatch ( )) display.sleep ( );
}
display.dispose ( );
}
}

效果圖:


You selected: 4 5 6 7 8 9 10
分析:list.getSelectionIndices ( )方法將會獲得被選擇項(xiàng)目的集合, selections[]或者[] elections表示動態(tài)一維數(shù)組。

4、Menu控件
建立菜單的一般步驟為:
1、在建立菜單時,首先需要建立一個菜單欄,需要使用SWT.BAR屬性
Menu menuBar = new Menu(shell, SWT.BAR);

2、在菜單欄的基礎(chǔ)之上,創(chuàng)建下拉菜單的所對應(yīng)的頂級菜單項(xiàng),需要使用SWT.CASCADE屬性
fileMenuHeader = new MenuItem(menuBar, SWT.CASCADE);
fileMenuHeader.setText("&File");

3、建立與頂級菜單項(xiàng)相關(guān)的下拉式菜單
dropMenu1 = new Menu(shell, SWT.DROP_DOWN);

4、將頂級菜單項(xiàng)與下拉菜單關(guān)聯(lián)
MenuHeader1.setMenu(dropMenu1);

5、為下拉菜單添加子菜單項(xiàng)
dropitem1= new MenuItem(dropMenu1, SWT.PUSH);
dropitem1.setText("open");



6、最后,在窗口中指定需要顯示的菜單欄
shell.setMenuBar(menuBar);



菜單的監(jiān)聽及事件
參照按鈕的監(jiān)聽以及事件,設(shè)計(jì)如下程序,當(dāng)點(diǎn)擊 File子菜單下的“open”時,在文本框中顯示“click open menu!”
dropitem1.addSelectionListener(new SelectionListener()
{
public void widgetSelected(SelectionEvent event)
{
text.setText("click open menu!");
}
public void widgetDefaultSelected(SelectionEvent event)
{
text.setText("click open menu!");
}
});


5、使用工具欄toobar
建立工具欄可以通過如下方式:ToolBar toolbar = new ToolBar(shell, SWT.NONE);
在工具欄的基礎(chǔ)之上創(chuàng)建工具欄子按鈕,并且設(shè)置子按鈕的標(biāo)題:

ToolItem item1 = new ToolItem(toolbar, SWT.PUSH);
item1.setText("item1");

例如:
ToolBar toolbar = new ToolBar(shell, SWT.NONE);
ToolItem item1 = new ToolItem(toolbar, SWT.PUSH);
item1.setText("item1");
ToolItem item2 = new ToolItem(toolbar, SWT.PUSH);
item2.setText("item2");



工具欄的監(jiān)聽及事件
實(shí)例:創(chuàng)建一個監(jiān)聽對象,將該監(jiān)聽對象應(yīng)用于每一個按鈕,最終來判斷鼠標(biāo)點(diǎn)擊的是哪一個按鈕,效果圖如下。
Listener listener = new Listener( ) {
public void handleEvent(Event event) {
ToolItem item =(ToolItem)event.widget;
String string = item.getText( );
text.setText("You selected:" + string); }
};
item1.addListener(SWT.Selection, listener);
item2.addListener(SWT.Selection, listener);
item3.addListener(SWT.Selection, listener);
item4.addListener(SWT.Selection, listener);



6、滾動條slider的使用
滾動條分為有邊框、垂直、水平三種類型,利用slider.setBounds方法可以指定滾動條所在的位置。
滾動條所能夠處理事件的包括:
SWT.ARROW_DOWN 向下或向右按鈕被點(diǎn)擊

SWT.ARROW_UP 向左或向上按鈕被點(diǎn)擊

SWT.DRAG 滑塊按鈕被托動

SWT.END 滑塊到達(dá)終點(diǎn)

SWT.HOME 滑塊到達(dá)起點(diǎn)

SWT.PAGE_DOWN 下方或右側(cè)的滾動條被點(diǎn)擊

SWT.PAGE_UP 上方或左側(cè)的滾動條被點(diǎn)擊
實(shí)例:根據(jù)滑塊的位置移動按鈕位置
slider.addListener(SWT.Selection, new Listener( ) {

public void handleEvent(Event event) {

switch(event.detail) {

case SWT.ARROW_DOWN: button.setBounds(slider.getSelection(),0,20,10);

break;

case SWT.ARROW_UP:button.setBounds(slider.getSelection(),0,20,10);

break;

case SWT.DRAG:button.setBounds(slider.getSelection(),0,20,10);

break;

case SWT.END:button.setBounds(slider.getSelection(),0,20,10);

break;

case SWT.HOME:button.setBounds(slider.getSelection(),0,20,10);

break;

case SWT.PAGE_DOWN:button.setBounds(slider.getSelection(),0,20,10);

break;

case SWT.PAGE_UP:button.setBounds(slider.getSelection(),0,20,10);

break;

}
}

});




7、樹形控件Tree
樹形控件使用的方法為,首先創(chuàng)建一個Tree類型的對象,其次在該對象的基礎(chǔ)之上繼續(xù)擴(kuò)展節(jié)點(diǎn),以及擴(kuò)展節(jié)點(diǎn)的子節(jié)點(diǎn)。
final Tree tree = new Tree(shell, SWT.BORDER);
可以利用tree.setSize方法來改變樹形控件的大小。在創(chuàng)建節(jié)點(diǎn)時,需要指明該節(jié)點(diǎn)所依賴的父節(jié)點(diǎn)的名稱,如TreeItem item0 = new TreeItem(tree, 0);,那么item0將成為tree對象中的0級(頂級)節(jié)點(diǎn)。
如下程序?qū)⒃趖ree對象的基礎(chǔ)之上產(chǎn)生9個節(jié)點(diǎn):
final Tree tree = new Tree(shell, SWT.BORDER);

tree.setSize(290, 290);

for(int loopIndex1 = 2000; loopIndex1 <= 2008; loopIndex1++) {

TreeItem item0 = new TreeItem(tree, 0);

item0.setText("Year " + loopIndex1);

}

在上述實(shí)例的基礎(chǔ)上為每一個0級節(jié)點(diǎn)的基礎(chǔ)上擴(kuò)展出12個節(jié)點(diǎn):
for(int loopIndex1 = 2000; loopIndex1 <= 2008; loopIndex1++) {

TreeItem item0 = new TreeItem(tree, 0);

item0.setText("Year " + loopIndex1);

for(int loopIndex2 = 1; loopIndex2 <= 12; loopIndex2++) {

TreeItem item1 = new TreeItem(item0, 0);

item1.setText("Month " + loopIndex2);
}

}


8、對話框dialog
對話框是一個依托于主窗體的子窗體,如圖所示。

例如:當(dāng)在主窗體中點(diǎn)擊按鈕時,彈出一個對話框dialog,當(dāng)關(guān)閉對話框時按鈕顯示“dialog is disposed”

Display display = new Display( );

final Shell shell = new Shell(display);

shell.setSize(300, 200);

shell.setText("main");

final Button opener = new Button(shell, SWT.PUSH);

opener.setText("Click Me");

opener.setBounds(20, 20, 50, 25);

final Shell dialog = new Shell(shell, SWT.APPLICATION_MODAL |

SWT.DIALOG_TRIM);

dialog.setText("dialog");

dialog.setBounds(10,10,50,60);

dialog.addDisposeListener(new DisposeListener(){

public void widgetDisposed(DisposeEvent e){

opener.setText("dialog is disposed");

}
});

Listener openerListener = new Listener( ) {

public void handleEvent(Event event) {

dialog.open( );

}

};

opener.addListener(SWT.Selection, openerListener);

shell.open( );

while(!dialog.isDisposed( )) {

if(!display.readAndDispatch( )) display.sleep( );

}

while (!shell.isDisposed( )) {

if (!display.readAndDispatch( ))

display.sleep( );

}

display.dispose( );
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Java實(shí)現(xiàn)類MSN、QQ好友上線通知界面
Eclipse插件開發(fā)之基礎(chǔ)篇(6) SWT簡介
JAVA.SWT/JFace: JFace篇之JFace對話框
第一個SWT程序
一個在windows和基于SWT的java程序間拖拽的例子(外部文件拖曳到SWT)
Eclipse從入門到精通
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服