Go to Previous Page Go to Contents Go to Java Page Go to Next Page
New Features of Java2 SDK, Standard Edition, v1.4
 
 

Scrollable TabbedPane

 
 

タブが多いとうざったい

 
 

今回は JTabbedPane クラスに関してです。でも、変更点は 1 つだけなので、さらっと行きましょう。

何が変わったかというとタブの表示の方法を選ぶことができるようになったということです。

例えば、タブがたくさんあるようなアプリケーションだと、タブを表示する領域が大きくなったしまい、肝心の JTabbedPane にはられたコンポーネントの表示領域が小さくなってしまうなどという本末転倒なことが起こったりします。

図 1 はそんな例です。タブが何段にもなってしまって見づらいですね。

Ordinary Tabbed Pane
図 1 タブが多くある場合の JTabbedPane

 

これを次のようにタブのスクロールをできるようにしてすっきりさせましょう、というのが JTabbedPane の変更点です。

Scrollable Tabbed Pane
図 2 スクロールを使った JTabbedPane

 

 
  変更点はたった 3 つ  
 

なんかあっけないほど簡単なので、ここで取りあげるのも恥ずかしいくらいですが....

図 1 のサンプルは

Applet の HTML TabbedPaneTest1.html
Applet のソース TabbedPaneTest1.java

変更後の図 2 は

Applet の HTML TabbedPaneTest2.html
Applet のソース TabbedPaneTest2.java

何が変わったかというと TabbedPaneTest1 クラスの init メソッドが

    public void init(){
        JTabbedPane pane = new JTabbedPane();
 
        initChild(pane);
        getContentPane().add(pane);
    }

TabbedPane2 では次のようになっています。

    public void init(){
        JTabbedPane pane = new JTabbedPane(JTabbedPane.TOP, JTabbedPane.SCROLL_TAB_LAYOUT);
 
        initChild(pane);
        getContentPane().add(pane);
    }

要は JTabbedPane のコンストラクタに引数を追加しただけです。JTabbedPane クラスのコンストラクタの第 2 引数は int 型でタブのレイアウトを示すようになりました。ここに入れられる定数は

  • JTabbedPane.WRAP_TAB_LAYOUT
  • JTabbedPane.SCROLL_TAB_LAYOUT

の 2 つの変数です。前者が段組で表示されるもの、後者がスクロールで表示されるものです。

この他に、タブの表示関係では 2 つのメソッド

  • void setTabLayoutPolicy(int tabLayoutPolicy)
  • int getTabLayoutPolicy()

が追加されました。これを使用すれば、途中からスクロール表示に変更することが可能になります。

簡単な変更で、見た目のインパクトが大きいので、ぜひご活用を。

でも、ちょっと不満もあります。VC++ などで作ったスクロール表示のタブは一番端のタブをクリックすると、ちょっとだけスクロールして、次のタブが選択できるようになっています。でも、JTabbedPane ではこれができないんですよね。次のタブを選択するには手動でスクロールさせる必要があって、ちょっと面倒です。できれば、正式版までに改良してくれるといいんですけど。

参考 URL

(Aug. 2001)

 
 
Go to Previous Page Go to Contents Go to Java Page Go to Next Page