import java.awt.GridLayout;

import javax.swing.*;
import javax.swing.table.*;

public class Exercice3 {

  public static void main(String[] args) {
    final JFrame frame=new JFrame();
    
    final ListModel model=new AbstractListModel() {
      public int getSize() {
        return 12;
      }

      public Object getElementAt(int index) {
        return new Double(Math.cos(index*Math.PI/6.0));
      }
    };
    
    TableModel model2=new AbstractTableModel() {
      public int getColumnCount() {
        return 2;
      }
      public int getRowCount() {
        return model.getSize();
      }
      public Object getValueAt(int row, int column) {
        if (column==0)
          return new Integer(row*30);
        else
          return model.getElementAt(row);
      }
      public String getColumnName(int column) {
        if (column==0)
          return "angle";
        else
          return "cosinus";
      }

    };
    
    JList list=new JList(model);
    JTable table=new JTable(model2);
    
    JPanel panel=new JPanel(new GridLayout(1,2));
    panel.add(new JScrollPane(list));
    panel.add(new JScrollPane(table));
    
    frame.setContentPane(panel);
    
    frame.setSize(400,300);
    frame.show();
  }
}
