SWT Tips and Samples 基礎編 > CTabFolder

 

CTabFolder

CTabFolderはタブアイテムにクローズボックスを持つタブフォルダウィジェットです。使い方は、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日
 
関連リンク
Eclipse API ドキュメント

- PR -

★☆当選☆★・・・すれば?現金100万円当ります!!

★ フルーツメール【毎日懸賞】好評実施中!デジカメや金券が当たる! ★ 毎日懸賞

オフィス用品・オフィス家具 価 格 交 渉 可! 
◎ 目指せ★業界最安値 ★ ◎ オフィネット・ドットコム株式会社

マイクロソフト お得な見積! まとめての購入ならオトクな方法で。ライセンスだから管理も簡単。


Copyright(C) 2003,2004 Jasmin Project. All Right Reserved.
SEO [PR] 爆速!無料ブログ 無料ホームページ開設 無料ライブ放送