Javaプログラミング/Javaプログラミング関連情報

テーブルを使おう!(2ページ目)

今回は、表シートを表示する「テーブル」の基本について覚えましょう。

執筆者:掌田 津耶乃

JScrollPaneでスクロール表示しよう


なぜ、JTableではスクロールバーが表示されないのか? いえ、実をいえばJTableに限らず、Swingのコンポーネント類(ウインドウも含めて)ではスクロールバーは表示されないのです。なぜなら、Swingには「スクロール表示のための専用コンポーネント」が用意されているからです。要するに、「スクロール表示したければこれを使え」ということなんですね。

これは「JScrollPane」というコンポーネントです。では、これを使って実際にJTableをスクロール表示させてみましょう。

package jp.allabout.java;

import java.awt.*;
import javax.swing.*;

public class SampleApp extends JFrame{
  private static final long serialVersionUID = 1L;
  private JTable table;
  private JScrollPane pane;
  
  public SampleApp(){
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    table = new JTable(10,5);
    table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
    pane = new JScrollPane(table);
    this.add(pane,BorderLayout.CENTER);
    this.setSize(new Dimension(300,200));
  }
  
  public static void main(String[] args) {
    new SampleApp().setVisible(true);
  }
}

JScrollPaneでスクロール表示させてみたところ。

ここでは、JScrollPaneを作成し、これにJTableを組み込んでスクロール表示をしています。コンストラクタを見てみましょう。JTableインスタンスを作成後、JTableの自動サイズ調整機能をオフにします。

table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);


この部分ですね。JTableは収めてある場所の大きさに応じて自動的にサイズを調整してしまいます。この機能を変更するのがsetAutoResizeModeです。ここではJTableのAUTO_RESIZE_OFFというクラスフィールドを指定して、既往をオフにしてあります。

続いてJScrollPaneの作成です。これにはさまざまな引数の指定方法が用意されているのですが、よく使われるのは、このJScrollPaneに組み込むコンポーネントを引数に指定する書き方です。

new JScrollPane(table);


これで、このJScrollPaneの中にJTableが組み込まれ、サイズに応じて自動的にスクロールバーが表示されるようになります。

これでようやく普通にJTableが使えるようになりました。では、続いてセルに表示される値について考えてみることにしましょう。


  • 前のページへ
  • 1
  • 2
  • 3
  • 4
  • 次のページへ

あわせて読みたい

あなたにオススメ

    表示について

    カテゴリー一覧

    All Aboutサービス・メディア

    All About公式SNS
    日々の生活や仕事を楽しむための情報を毎日お届けします。
    公式SNS一覧
    © All About, Inc. All rights reserved. 掲載の記事・写真・イラストなど、すべてのコンテンツの無断複写・転載・公衆送信等を禁じます