| ホーム > 技術情報 > CSVファイルをJTableで表示する | 検索 | 更新情報 |
| Javaの入門書 | 著書 |
CSVViewerは、 CSVファイルをJTableで表示する簡単なビューアです。 java.swing.JTableの小さなサンプルプログラムと考えてください。
コンパイル&実行は、
javac CSVViewer.java
java CSVViewer CSVファイル名
のようにします(J2SE 1.4以降必須)。
例えば、
java CSVViewer sample.csv
とすると、sample.csvというファイルを表示します。
CSVの切り分けには正規表現パッケージjava.util.regexを使っています。
/* CSVViewer.java */
import java.io.*;
import java.awt.*;
import java.util.regex.*;
import javax.swing.*;
import javax.swing.table.*;
public class CSVViewer extends JFrame {
private final String _filename;
private final JTable _table = new JTable();
private final JScrollPane _pane = new JScrollPane(_table);
public CSVViewer(String filename) throws IOException {
super(filename + " - CSVViewer");
_filename = filename;
readin();
getContentPane().add(_pane);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
pack();
show();
}
private void readin() {
Pattern pattern = Pattern.compile(",");
DefaultTableModel model = (DefaultTableModel)_table.getModel();
try {
final BufferedReader reader = new BufferedReader(new FileReader(_filename));
String line;
for (int row = 0; (line = reader.readLine()) != null; row++) {
String[] items = pattern.split(line);
model.setRowCount(row + 1);
for (int column = 0; column < items.length; column++) {
if (model.getColumnCount() <= column) {
model.setColumnCount(column + 1);
}
_table.setValueAt(items[column], row, column);
}
}
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
public static void main(String[] args) throws Exception {
if (args.length != 1) {
System.out.println("Usage: java CSVViewer file.csv");
System.exit(0);
}
new CSVViewer(args[0]);
}
}
サンプルCSVファイル(sample.csv)です。
2002,ISBN4797321261,結城浩のPerlクイズ 2002,ISBN4797319127,Java言語で学ぶデザインパターン入門 マルチスレッド編 2001,ISBN4797316462,Java言語で学ぶデザインパターン入門 2001,ISBN4797312211,Perl言語プログラミングレッスン 入門編 1999,ISBN4797308036,Java言語プログラミングレッスン(上巻) 1999,ISBN4797310103,Java言語プログラミングレッスン(下巻) 1998,ISBN479730507X,Perlで作るCGI入門 基礎編 1998,ISBN4797305819,Perlで作るCGI入門 応用編 1998,ISBN4797307579,改訂第2版 C言語プログラミングレッスン 入門編 1995,ISBN489052519X,C言語プログラミングレッスン 文法編 1996,ISBN4890528687,新版 C言語プログラミングのエッセンス
あなたのご意見・感想をお送りください。 あなたの一言が大きなはげみとなりますので、どんなことでもどうぞ。