C
Curryhuhn
Gast
Hallo!
Ich versuche gerade ein kleines Tool zu schreiben, dass jede Sekunde einen Datensatz in eine Tabelle schreibt. Doch weiss ich nicht, wie ich von der Klasse "Task" aus eine Zeile in dem TableModel der Klasse "TableTest" erstellen soll.
Über eure Hilfe würde ich mich sehr freuen!
Ich versuche gerade ein kleines Tool zu schreiben, dass jede Sekunde einen Datensatz in eine Tabelle schreibt. Doch weiss ich nicht, wie ich von der Klasse "Task" aus eine Zeile in dem TableModel der Klasse "TableTest" erstellen soll.
Code:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.table.*;
import java.util.*;
import java.util.*;
public class TableTest extends JFrame implements ActionListener {
private Object[] data = new Object[3];
private DefaultTableModel model = new DefaultTableModel();
private JTable table = new JTable(model);
public TableTest() {
super("TableTest");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
model.addColumn("Time");
model.addColumn("Pixel");
model.addColumn("Distance");
JPanel contentPane = new JPanel();
JButton button = new JButton("Add Row");
button.addActionListener(this);
contentPane.add(button, BorderLayout.NORTH);
contentPane.add(new JScrollPane(table), BorderLayout.CENTER);
setContentPane(contentPane);
java.util.Timer timer = new java.util.Timer();
timer.schedule(new Task(this), 1000, 1000);
}
public void actionPerformed(ActionEvent e) {
int rowCount = model.getRowCount();
for(int column = 0; column < 3; ++column) {
data[column] = "(" + rowCount + "," + column + ")";
}
model.addRow(data);
}
public void addDataRow(Object data) {
model.addRow(data);
}
public static void main(String[] args) {
TableTest frame = new TableTest();
frame.pack();
frame.setVisible(true);
}
}
class Task extends TimerTask {
public Object source;
public void Task(Object s) {
source = s;
}
public void run() {
Object[] data = new Object[3];
data[0] = "Ein";
data[1] = "kleiner";
data[2] = "Test";
System.out.println("Ein kleiner Test");
s.addDataRow(data);
// irgendwie muss jetzt data der Methode model.addRow(data) übergeben werden
}
}
Über eure Hilfe würde ich mich sehr freuen!