,

JavaのJTableについて

とほー最近まじめに仕事しすぎだよー 休みぐらいはりらーくすしてマンガ買いにいこー 「ハヤテブレード」の2巻が出…

とほー最近まじめに仕事しすぎだよー

休みぐらいはりらーくすしてマンガ買いにいこー

「ハヤテブレード」の2巻が出ていたりした。「タマラセ」の2巻は2月に出るのかな~

そんなことはともかくJTableです。.net FrameworkでいうところのDataGridです。

このコンポーネントがどれくらい便利かは使った人だけが分かります。

基本的にはデータのビューに使います。VB.netではこんな感じ

    Dim dt As New DataTable()
    Dim dc(2) As DataColumn

    dc(0) = New DataColumn(“No”)
    dc(1) = New DataColumn(“Name”)
    dc(2) = New DataColumn(“Comment”)

    Dim i As Integer

    For i = LBound(dc) To UBound(dc)
      dt.Columns.Add(dc(i))
    Next

    Dim row As DataRow = dt.NewRow
    row(0) = “1”
    row(1) = “Mizuho Kazami”
    row(2) = “すごくイイ”

    dt.Rows.Add(row)
    dataGrid.DataSource = dt

かなり省いていますけど雰囲気は伝わりますか?

それではJavaは..と簡単な方法にDefaultTableModelクラスを使うと

良いのですがAbstractTableModelを使うとより細かく作り込めます。

datasというStringの2次元配列にデータがあるとします。

data[0][0] = “1”;

data[0][1] = “Miduho Kazami”;

data[0][2] = “すごくイイ”;

行ヘッダ部分はStringの1次配列をheaderという変数にして

“No”,”Name”,”Comment”とデータを入れます。

    TableModel model = new AbstractTableModel() {
      public int getColumnCount(){ return header.length; }

      public int getRowCount(){ return data[].length; }

      public Object getValueAt(int row, int col){ return datas[row][col]; }

      public String getColumnName(int column){ return header_[column].toString(); }

      public Class getColumnClass(int c){ getValueAt(0, c).getClass(); }

      public boolean isCellEditable(int row, int col) { return col != 0; }

      public void setValueAt(Object aValue, int row, int column) {
        datas[row][column] = aValue;
      }
    };
    JTable table = new JTable(model);

な感じですね。私はisCellEditableが使いたかっただけなんですが。

誤字っていたらゴメンナサイ。JavaSDKのDemoはとても参考になります。

あっドレミのDVDも発売してたっけ!重要ダ!買いにいこ

Tags:

コメントを残す