2016-06-12 22 views
0

私は次の方法でJTableを作成しました。この表には5つの列と4つの行があります。 この状態では、4行はすべて空です。既存のJTableに動的に値を追加する

String[] columns = {"Emplotee ID","Name","Address","City","Salary"}; 

//Table that already have 4 empty rows 
DefaultTableModel model = new DefaultTableModel(columns,4); 
JTable detail = new JTable(model); 
JScrollPane scroll = new JScrollPane(detail); 

ここで、空の行に文字列配列を使用して値を追加します。 このプログラムのGUIには、ユーザー入力を取得するための5つのJTextFieldがあります。 JTextFiledsに値を入力して「追加」ボタンをクリックすると、すべてのJTextFiled値がString配列の値で取得されます。

String[] values = new String[6]; 
//When click addButton all textFiled data should go into table 
addButton.addMouseListener(new MouseAdapter(){ 
    @Override 
    public void mouseClicked(MouseEvent evt){ 
     values[0] = idField.getText(); //get JTextFields data into array 
     values[1] = nameField.getText(); 
     values[2] = addressField.getText(); 
     values[3] = cityField.getText(); 
     values[4] = salaryField.getText(); 

     //What now? 
    } 
}); 

私はこれを使用してテーブルに新しい行を追加できます。しかし、これは私が望む機能ではありません。

DefaultTableModel newModel = (DefaultTableModel)detail.getModel(); 
newModel.addRow(values); 
+0

このリンクを見かけましたか?それは答えでなければなりません。 http://stackoverflow.com/questions/3549206/how-to-add-row-in-jtable – Rjiuk

+0

これは私が欲しいものではありません。私はすでに4つの空行を持つJTableを持っています。別の行を追加する必要はなく、既存の行に値を追加するだけです。 –

答えて

1

既存のテーブル行のセット内容:ご希望の場合は

int row; 
.... 
// make sure row is set to index of the table row 
// you want to populate 
for (int c=0; c<values.length; ++c) 
    detail.setValueAt(values[c], row, c); 

TableModelも、setValueAt方法があります。

+0

ありがとう。私は、上記の作業を行うための組み込みメソッドを見ようとしました。しかし、これも私のために働いています。 –

関連する問題