1

コンストラクター メソッド JTable(TableModel) でテーブルを作成したいと思います。各列のタイトルを表示するには、TableModel のどの正確なメソッドが必要ですか?

4

4 に答える 4

4

JTable内に埋め込む必要がJScrollPaneあり、列見出しが自動的に表示されます。

JScrollPane sp = new JScrollPane(new JTable());
于 2010-01-22T10:55:37.463 に答える
1

たとえば、クラスAbstractTableModelを拡張するか、 DefaultTableModelを使用して、 TableModelを実装する必要があります。これには後で、列の数と名前を設定できるコンストラクターがあります。

于 2010-01-22T11:14:39.780 に答える
1

必要な列名を返すには、 TableModelインターフェイスにgetColumnNameメソッドを実装する必要があります。

TableModel の Javadoc から:

String getColumnName(int columnIndex) columnIndex
の列の名前を返します。これは、テーブルの列ヘッダー名を初期化するために使用されます。

編集:
抽象クラスAbstractTableModelは、インターフェイスTableModelのほとんどのメソッドの実装を提供し、インターフェイスTableModelのgetColumnNameメソッドのデフォルトの実装も提供します(ただし、列名を A、B として返すため、目的に合わない場合があります)。

AbstractTableModelをサブクラス化して独自の TableModel を作成し、抽象メソッドの実装を提供してgetColumnNameメソッドをオーバーライドします。たとえば、次のようなことを試すことができます。

class MyTableModel extends AbstractTableModel {
   private List<String> rowData; // say 
   private List<String> columnNames; 

   MyTableModel(List<String> data,List<String> names) {
       rowData = data;
       columnNames = names;
   }

   // provide implementation of abstract methods
   public int getRowCount() {...}
   public int getColumnCount() {...} 
   public Object getValueAt(int row, int column) {...}

   @Override
   public String getColumnName(int pCol) {
       return columnNames.get(pCol);
   }
   ...
}

// create your table as below;
List<String> data = new ArrayList<String>();
data.add("Test");
data.add("Try");

List<String> colNames = new ArrayList<String>();
colNames.add("Name");

MyTableModel model = new MyTableModel(data,colNames);
JTable myTable = new JTable(model);

于 2010-01-22T11:16:16.170 に答える
1

あなたが本当に探しているのは、クラスDefaultTableModelだと思います。ドキュメントを読むだけで、自分の道を歩むことができます。

于 2010-01-22T11:23:35.183 に答える