0

私はJavaが初めてで、マップに保存したデータを取得してテーブルに追加したいと考えています。「テーブルの使用方法」に関する Java チュートリアルを読んでいるときに、以下のサンプル コードを見て迷っていることに気付きました。

String[] columnNames = { "blah", "blah" };

Object[][] data = {
{"Kathy", "Smith",
 "Snowboarding", new Integer(5), new Boolean(false)},
{"John", "Doe",
 "Rowing", new Integer(3), new Boolean(true)},
{"Sue", "Black",
 "Knitting", new Integer(2), new Boolean(false)},
{"Jane", "White",
 "Speed reading", new Integer(20), new Boolean(true)},
{"Joe", "Brown",
 "Pool", new Integer(10), new Boolean(false)}
};

次に、次のように JTable オブジェクトをインスタンス化することになっています。

JTable table = new JTable(data, columnNames);

上記の例のように、マップからオブジェクトの配列にデータを入力する方法について混乱していますか? マップの行のデータは String と Float になります。

理想的には、{ "File", "Size" } という 2 つの列 (単なる例) を用意し、行にファイル名の文字列とサイズの浮動小数点数を配置します。

ここに置くにはばかげていると思うさまざまなことを試しましたが、何もうまくいきませんでした。

4

2 に答える 2

3

代わりに、リストベースのカスタム TableModel を使用することをお勧めします。

こちらのチュートリアルをご覧ください: http://docs.oracle.com/javase/tutorial/uiswing/components/table.html#data

少し前に書いたリストベースの読み取り専用 TableModel のサンプルを次に示します。

http://puces-samples.svn.sourceforge.net/viewvc/puces-samples/tags/sessionstate-1.0/sessionstate-suite/sessionstate-sample/src/blogspot/puce/sessionstate/sample/ParticipantTableModel.java?revision= 13&view=マークアップ

NetBeans プラットフォーム上でアプリケーションを構築していない場合は、NbBundle の代わりに ResourceBundle を使用することもできます (ただし、RCP を使用することをお勧めします)。

于 2013-05-13T14:48:36.897 に答える
3
  Object[][] fileList = new Object[fileListVector.size()][2];

for (int i = 0; i < fileListVector.size(); i++) {
    fileList [i][0] = fileListVector.get(i).getFileName();
    fileList [i][1] = fileListVector.get(i).getFileSize();
}

このように、ベクターから配列にデータを入力できます。

于 2013-05-13T14:52:13.393 に答える