基本的に私はテキストファイルから読み込み、jTable
に行を追加する方法を持っています。それは世話をして、すべてうまく動作します。私が欲しいのは、行の追加効果です。 jTableに、すべての行ではなく行ごとに一度に行を追加する必要があります。 java.swing.Timerを使用して同様のソリューションを見つけましたが、それは私のためには機能しません。jTableが一気にすべてを追加するのを止めるには?
以下では、テキストファイルから読み込み、jTableに追加するメソッドを追加し、タイマーはすべての行に対して挿入ロープロセス(意図した目的)を一時停止します。タイマーは正常に動作しますが、行を遅らせる代わりに、テーブル全体が遅れます。ボタンをクリックすると、テーブルは2秒間待機し、行全体を吐き出します。 peekilletのUPDATE#2のように行ごとに行を追加するにはどうすればいいですか?どんな助けにも感謝します!
private void addActionPerformed(java.awt.event.ActionEvent evt) {
addData();
}
public void addData(){
Timer timer = new Timer(2000, new ActionListener() {
public void actionPerformed(ActionEvent ae) {
try {
FileInputStream fstream = new FileInputStream("\\data.txt");
BufferedReader br = new BufferedReader(new InputStreamReader(fstream));
String line;
DefaultTableModel model = (DefaultTableModel) resultTable.getModel();
while((line = br.readLine()) != null){
model.addRow(new Object[]{line});
//System.out.println(strLine);
}
fstream.close();
} catch (FileNotFoundException ex) {
Logger.getLogger(PIIFrame.class.getName()).log(Level.SEVERE, null, ex);
} catch (IOException ex) {
Logger.getLogger(PIIFrame.class.getName()).log(Level.SEVERE, null, ex);
}
repaint();
}
});
timer.setRepeats(false);
timer.start();
}
溶液のためのためのSwingWorkerの[例](http://stackoverflow.com/questions/17414109/populate-jtable-with-large-number-of-rows/17415635#17415635) – MadProgrammer