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

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

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

執筆者:掌田 津耶乃

セルに初期値を表示させるには?


一般的な表計算ソフトを作るつもりなら別ですが、ウインドウの一部分にこうした表を表示させたいという場合には、表示する表などのデータがあらかじめ用意されていて、それを表示させることが多いものです。では、あらかじめセルに表示される値を用意して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);
    
    String[][] data = {
        {"A","B","C",""},
        {"123","456","789",""},
        {"あいう","かきく","さしす",""}
    };
    String[] header = {"A","B","C","D"};
    table = new JTable(data,header);
    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);
  }
}

セルの初期値を配列で用意して表示させる。

初期値を表示させるもっとも簡単な方法は、あらかじめ配列として表示させる値をまとめておき、これをJTableに設定するというものです。ここでは、まずdataという2次元配列を用意し、ここに表示させる値をまとめておきました。これとは別に、もう1つheaderという配列が用意されていますが、これはヘッダー名をまとめたものです。

そして、JTableのインスタンスを作成する際に、この2つの配列(表示する2次元配列と、ヘッダー名の配列)を引数に指定してnewします。これで、これらの値を表示するテーブルが作成されます。

実際にやってみるとわかることですが、これで値を設定した場合、縦横の行数・文字数は、用意した値の数分しか用意されません。必要なデータだけを表示する表を作成するならこれは便利な方法ですが、広いシートの一部分に値を設定するだけ、というような場合には少々面倒になります(他のセルの分の「空っぽの値」を用意しなければいけませんから)。

また、セルの値を操作しようという場合も、これではうまくいきません。JTableでは、テーブルの個々のセルの値を取り出したり変更したりする機能はないのです。じゃあ、どうやって? それは、JListの場合を思い出せば、自然と答えがわかってくるのではないでしょうか? そう、「モデル」というやつを使うのです!


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

あわせて読みたい

あなたにオススメ

    表示について

    カテゴリー一覧

    All Aboutサービス・メディア

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