MainClass.java Source code

Java tutorial

Introduction

Here is the source code for MainClass.java

Source

import java.awt.BorderLayout;

import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.AbstractTableModel;

public class MainClass extends JFrame {

    public MainClass() {
        super("Dynamic Data Test");
        setSize(300, 200);
        setDefaultCloseOperation(EXIT_ON_CLOSE);

        JTable jt = new JTable(new MarketDataModel(5));
        JScrollPane jsp = new JScrollPane(jt);
        getContentPane().add(jsp, BorderLayout.CENTER);
    }

    public static void main(String args[]) {
        MainClass mt = new MainClass();
        mt.setVisible(true);
    }
}

class MarketDataModel extends AbstractTableModel implements Runnable {
    Thread runner;

    public MarketDataModel(int initialDelay) {
        Thread runner = new Thread(this);
        runner.start();
    }

    double[] data = new double[] { 1, 2, 3, 4, 5 };

    String[] headers = { "Symbol", "Price", "Change", "Last updated" };

    public int getRowCount() {
        return 1;
    }

    public int getColumnCount() {
        return headers.length;
    }

    public String getColumnName(int c) {
        return headers[c];
    }

    public Object getValueAt(int r, int c) {
        return data[c];
    }

    public void updateStocks() {
        for (int i = 0; i < data.length; i++) {
            data[i] = Math.random();
        }
    }

    public void run() {
        while (true) {
            updateStocks();

            fireTableRowsUpdated(0, data.length - 1);
            try {
                Thread.sleep(1000);
            } catch (InterruptedException ie) {
            }
        }
    }
}