//: Table.java
// Simple demonstration of JTable
//package c13.swing;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.table.*;
import javax.swing.event.*;

// The TableModel controls all the data:
class DataModel extends AbstractTableModel {
  Object[][] data = {
    {"bir", "iki", "üç", "dört"},
    {"beş", "altı", "yedi", "sekiz"},
    {"dokuz", "on", "onbir", "oniki"},
                    };
  String[] baslik={"sütun 1","sütun 2","sütun 3","sütun 4"};

  // Tablo dinleme metodu ve sınıfı : Tabloda bir değişiklik yapıldığında
  // JOption pane ile yeni değişikliği göster
  class TML implements TableModelListener {
    public void tableChanged(TableModelEvent e) {
      String s="";
      for(int i = 0; i < data.length; i++)
      {
        for(int j = 0; j < data[0].length; j++)
          s+=data[i][j] + " ";
      s+="\n";
      }
      JOptionPane.showMessageDialog(null,s,"Tablodaki data değiştirildi",
      JOptionPane.PLAIN_MESSAGE);
    }
  }
  //kurucu metod
  DataModel() {
    addTableModelListener(new TML());
  }
  public int getColumnCount() {return data[0].length;}
  public int getRowCount() { return data.length;}
  public Object getValueAt(int row, int col) {return data[row][col];}
  public String getColumnName(int c) {return baslik[c];}
  public void setValueAt(Object val, int row, int col)
  {
    data[row][col] = val;
    // Değişimin olduğunu göster:
    fireTableDataChanged();
  }
  public boolean
  isCellEditable(int row, int col) {
    return true;
  }
};

public class table1SWF_2000 extends JFrame {
  public table1SWF_2000()
  {
        super("Tablo örneği");
        Container c=getContentPane();
        c.setLayout(new BorderLayout());
        JTable table = new JTable(new DataModel());
         JScrollPane jsp=new JScrollPane(table);
        c.add(jsp, BorderLayout.CENTER);
  }

  public static void main(String args[]) {
      table1SWF_2000 pencere= new table1SWF_2000();
      pencere.setSize(300,300);
      pencere.addWindowListener(new BasicWindowMonitor());
      pencere.setVisible(true);
  }
} ///:~