• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:JFileChooserで選択したファイルをテーブルに追加したい)

JFileChooserで選択したファイルをテーブルに追加する方法

このQ&Aのポイント
  • 現在未完成ですが、このような感じでボタンを押してJFileChooserを開いて選択したものをテーブルに格納するものを作ろうとしています。
  • テーブルに格納するのは、String columnName[] = { "名前","サイズ","更新日時","拡張子" };でそれぞれの項目に該当する内容をテーブルの各セルに出力したいです。
  • AbstractTableModelを使ってこのコードにさらに拡張しちゃんとしたものにしたいのですが、どこにどのようなコードを追加していったらよいでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • davosuke
  • ベストアンサー率61% (34/55)
回答No.1

まず最初にAbstractTableModel抽象クラスなのでテーブルをモデリングするAbstractTableModelを継承したクラスをクラスが必要です。 TestTableModelクラスのソース内容 /** * 表示用データ定義クラス。 */ public class TestTableModel  extends AbstractTableModel { /** * 表示データを保持する。 */ private java.util.List list = new ArrayList(); /** * 行数を保持する。 */ private int rowCount = 0; /** * 列数を保持する。 */ private int colCount = 0; /** * クラスを初期化する。 */ public TestTableModel() { } /** * 表示列数を取得する。 * @return 値 */ public int getColumnCount() { return colCount; } /** * 表示行数を取得する。 * @return 値 */ public int getRowCount() { return rowCount; } /** * 表示する値を取得する。 * @param row 行 * @param col 列 * @return 値 */ public Object getValueAt(int row, int col) { // 行データ取得 java.util.List cl = (java.util.List)list.get(row); // データに無いセルの場合 if(cl.size() <= col) return null; // セルデータ取得 Object obj = cl.get(col); return obj; } } クラス作成には上記くらいの記述が必要かと思われます。尚、私は、テーブルのデータを保持する為Listクラスを使用しました。 (テーブルのデータを保持する為クラスは便宜を図ってください。) jTableを誰がnewするか質問に記述されてないので分かりませんが、生成個所で /** * データモデルを保持する。 */ TestTableModel model = new DataModel(); /** * テーブルを保持する。 */ JTable jTable1 = new JTable(model); としてください。 最後にテーブルの各セルに出力の仕方は (質問引用) private JButton getJButton() {    : jButton.addActionListener(new java.awt.event.ActionListener() {  public void actionPerformed   (java.awt.event.ActionEvent e) { JFileChooser fileChooser = new JFileChooser("."); int state = fileChooser.showOpenDialog(null); File file = fileChooser.getSelectedFile(); if(state != JFileChooser.APPROVE_OPTION ||   file == null){    return;   } } //追加 Start JTable objTable = getJTable(); TestTableModel model = (TestTableModel)objTable.getModel(); model.setValueAt(); //追加 End }); } return jButton; } オブジェクトの生成方法や表示の仕方が明記されていませんので、修正個所としてこれくらいかと思います。 以上、よろしく,お願い致します。

関連するQ&A