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

JTableでテーブルを作ろう!(3ページ目)

今回は、表計算ソフトなどでおなじみのテーブルを作る「JTable」についてです。

執筆者:掌田 津耶乃

テーブルにデータを追加する


テーブルモデルは、既に設定されたセルの値を操作するだけでなく、データの量を拡大したり、削除していったりすることもできます。たとえば、必要に応じてテーブルに行や列を追加したり、特定の行や列を削除するのも自由なのです。これも実際にやってみましょう。

package jp.allabout;

import java.util.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.table.*;

public class SampleApp extends JFrame implements ActionListener {
  JTable table;
  JScrollPane scroll;
  DefaultTableModel model;
  JButton button;

  public SampleApp(){
    this.setSize(new Dimension(300,200));
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    model = new DefaultTableModel(1,1);
    table = new JTable(model);
    scroll = new JScrollPane(table);
    this.add(scroll,BorderLayout.CENTER);
    button = new JButton("add");
    button.addActionListener(this);
    this.add(button,BorderLayout.SOUTH);
  }
  
  public void actionPerformed(ActionEvent e){
    model.addColumn(null);
    model.addRow(new Vector());
  }
  
  public static void main(String[] args) {
    new SampleApp().setVisible(true);
  }
  
}

ボタンを押すと、行と列が増えていく。

これは、ボタンを押すごとに、新しい行と列を追加していくサンプルです。ボタンのactionPerformedを見てください。「addColumn」「addRow」といったメソッドを使って列と行を増やしているのがわかりますね。DefaultTableModelには、こうした列・行を増減するためのメソッドが用意されています。

○列・行を追加する
[DefaultTableModel].addRow( [Object] );
[DefaultTableModel].addColumn( [Object配列またはVector] );


○行を削除する
[DefaultTableModel].removeRow( [int値] );


○列を削除する
[JTable].removeColumn( [TableColumn] );


列・行の追加は、非常にシンプルですね。addRwo、addColumnといったメソッドを追加するだけです。addColumnの場合は、引数にObject配列かVectorが必要になります。nullではまずいので、初期値が不要な場合は空のVectorインスタンスなどを指定するとよいでしょう。

削除のほうは、行については簡単です。「removeRow」で行数を指定するだけです。が、列のほうは少々やっかいです。列は、JTableでは「TableColumn」というクラスとして管理されています。このため、TableModelだけの問題でなく、JTableから削除したいTableColumnを取得し、それをremoveColumnで取り除く、という面倒なことをしないといけません。まぁ、このあたりは、もう少しテーブルについて理解を深めないとわかりにくいかも知れませんね。とりあえずは、列・行の追加だけでも使えるようになれば、ずいぶんと応用の幅も広がることでしょう。
【編集部おすすめの購入サイト】
楽天市場で Java 関連の書籍を見るAmazon で Java 関連の書籍を見る
  • 前のページへ
  • 1
  • 2
  • 3
※記事内容は執筆時点のものです。最新の内容をご確認ください。
※OSやアプリ、ソフトのバージョンによっては画面表示、操作方法が異なる可能性があります。

あわせて読みたい

あなたにオススメ

    表示について

    カテゴリー一覧

    All Aboutサービス・メディア

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