SWT Tips and Samples 基礎編 > CTabFolder |
|
CTabFolderCTabFolderはタブアイテムにクローズボックスを持つタブフォルダウィジェットです。使い方は、TabFolderとほぼ同じです。 CTabFolder tab = new CTabFolder(shell, SWT.NONE); Text text = new Text(tab, ...); ... CTabItem item = new CTabItem(tab, SWT.NONE); item.setText(...); item.setControl(text); デフォルト設定ではタブにクローズボックスは表示されませんが、CTabFolderにCTabFolderListenerもしくはCTabFolderAdapterを追加すると、タブアイテムにクローズボタンが表示されるようになります。 このボタンがクリックされると、itemClosedメソッドが呼ばれ実際に閉じる処理が行われます。タブアイテムを閉じたくないときは、メソッド内でevent.doitにfalseを代入します。 tab.addCTabFolderListener(new CTabFolderAdapter(){ public void itemClosed(CTabFolderEvent event) { //タブが閉じられたときに、このメソッドが呼び出される。 //閉じたくないタブのときに、以下を実行する。 event.doit = false; } }); サンプルプログラムサンプルプログラムでは3番目のタブアイテムは閉じることができないようになっています。 ソースコード (CTabFolderTest.java)import org.eclipse.swt.SWT; import org.eclipse.swt.custom.*; import org.eclipse.swt.layout.*; import org.eclipse.swt.widgets.*; public class CTabFolderTest { public static void main(String[] args) { new CTabFolderTest(); } public CTabFolderTest() { Display display = new Display(); Shell shell = new Shell(display); shell.setText("TabFolderTest"); shell.setLayout(new FillLayout(SWT.VERTICAL)); CTabFolder tab = new CTabFolder(shell, SWT.NONE); Text text = new Text(tab, SWT.MULTI | SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL); text.setText("Text"); CTabItem tabItem1 = new CTabItem(tab, SWT.NONE); tabItem1.setText("Tab1"); tabItem1.setControl(text); Label label = new Label(tab, SWT.NONE); label.setText("Label"); CTabItem tabItem2 = new CTabItem(tab, SWT.NONE); tabItem2.setText("Tab2"); tabItem2.setControl(label); Button button = new Button(tab, SWT.PUSH); button.setText("Button"); final CTabItem uncloseableItem = new CTabItem(tab, SWT.NONE); uncloseableItem.setText("Uncloseable Tab"); uncloseableItem.setControl(button); tab.addCTabFolderListener(new CTabFolderAdapter(){ public void itemClosed(CTabFolderEvent event) { System.out.println("itemClosed() is invoked."); System.out.println("event: " + event); if (event.item.equals(uncloseableItem)){ event.doit = false; } } }); shell.setSize(300,200); shell.open(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) { display.sleep(); } } display.dispose(); } } 関連サンプルプログラム
最新更新日: 2005年6月13日 |
- PR -
★ フルーツメール【毎日懸賞】好評実施中!デジカメや金券が当たる! ★ 毎日懸賞 |
||||
|
|||||
Copyright(C) 2003,2004 Jasmin Project. All Right Reserved. |
SEO | [PR] 爆速!無料ブログ 無料ホームページ開設 無料ライブ放送 | ||