2017-01-11 9 views
0

私はJTable1を持つnetbeansによって生成されたJFrameを持っています。私はJTableを受け入れ、別のものでJTable2を返すメソッドを持っています。既存のJTableをメソッドのJTable結果に変換するにはどうすればよいですか?

JTable1(JFrame)をJTable2(メソッド)にする方法を知りたいですか?

public static JTable realTimeFilter(JTable table) { 

    TableRowSorter<TableModel> rowSorter = new TableRowSorter<>(table.getModel()); 
    table.setRowSorter(rowSorter); 
    table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); 
    table.getColumnModel().getColumn(0).setPreferredWidth(60); 
    table.getColumnModel().getColumn(1).setPreferredWidth(60); 
    table.getColumnModel().getColumn(2).setPreferredWidth(502); 
    table.getColumnModel().getColumn(3).setPreferredWidth(130); 
    table.getColumnModel().getColumn(4).setPreferredWidth(130); 
    table.getColumnModel().getColumn(5).setPreferredWidth(130); 
    table.getColumnModel().getColumn(6).setPreferredWidth(70); 
    return table; 
} 
+0

'JTable1 = realTimeFilter(JTable1)'そして 'JTable1.repaint()'を使って 'JTable1'の新しい値をビューで更新します。 –

+0

ありがとうございました! –

答えて

1

repaint()メソッドを使用して、テーブルの変更を反映させることができます。

JTable1 = realTimeFilter(JTable1); 
//JTable1.repaint(); no need for this method as i got to know from comments on this answer 

それとも、あなたはよりダイナミックにdocumentationから、

JTable1.getModel().fireTableDataChanged()

を使用して変更についてのあなたのテーブルに通知することができます。

+0

これは不要です。テーブルのモデルを更新すると_model_はそのようなイベントを発生させるはずです。そのテーブルはそれに応答して更新されます。 – trashgod

+0

@trashgodこれで、realTimeFilter()を呼び出すと、JTableが更新され、リアルタイムフィルタがあっても、再描画する必要はありません()。すべてのコードが必要な場合は、教えてください。 –

0

JTable1 = realTimeFilter(JTable1); として作業する必要はありません。repaint() JTable。

関連する問題