TOP →
Java →
Swing →
JTable → This Page
JTable@Swing サンプル13
概要
Java -
Swing -
JTable のサンプルです。
・画像の表示
解説
画像を表示するサンプルです。
DefaultTableMode では画像を表示できないので拡張したクラスを使っています。
(DefaultTableMode だと画像の文字列が表示されてしまう)
サンプルイメージ
サンプルソース
import java.awt.Dimension;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
/**
* JTable サンプル13
* ・画像の表示
*
* @author みっちー
*/
public class JTable13 extends JFrame {
private static final long serialVersionUID = 1L;
/**
* 開始メソッド
*
* @param args パラメータ
*/
public static void main(String[] args) {
JTable13 frame = new JTable13();
// 閉じるボタンをクリックされた場合の動作を設定
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// ウインドウのタイトルを設定
frame.setTitle("JTable サンプル13");
// フレームの X座標、Y座標、幅、高さを設定
frame.setBounds(100, 200, 400, 250);
// フレームを表示(これをしないと透明のフレームが立ち上がってしまう)
frame.setVisible(true);
}
/**
* コンストラクタ
*/
public JTable13() {
// パネルを作成
JPanel panelBase = new JPanel();
// 配列を作成
Object[][] arrayData = {
{ new ImageIcon("./img/man.png"), "1", "Taro", "22" },
{ new ImageIcon("./img/woman.png"), "2", "Hanako", "18" },
{ new ImageIcon("./img/man.png"), "3", "Jiro", "21" }
};
String[] arrayColumn = { "icon", "id", "name", "age" };
// テーブルモデルを生成
DefaultTableModel tm = new MyTableModel(arrayData, arrayColumn);
// 表を作成
JTable table = new JTable(tm);
// 行の高さを設定
table.setRowHeight(32);
// スクロールパネルを作成し、表を追加
JScrollPane sp = new JScrollPane(table);
sp.setPreferredSize(new Dimension(350, 160));
// スクロールパネル、ボタンを追加
panelBase.add(sp);
// パネルを追加
getContentPane().add(panelBase);
}
// TableModel
class MyTableModel extends DefaultTableModel {
private static final long serialVersionUID = 1L;
// コンストラクタ
public MyTableModel(Object[][] arg0, Object[] arg1) {
super(arg0, arg1);
}
// 列クラス返却メソッド
public Class getColumnClass(int col) {
return getValueAt(0, col).getClass();
}
}
}
サンプルソースのダウンロード
ソースのダウンロード(Eclipse用のプロジェクトファイルも同梱)
更新履歴
2016/05/13 新規作成
TOP →
Java →
Swing →
JTable → This Page