import java.awt.*;

import javax.swing.*;
import javax.swing.table.*;


/**
 * @author Remi Forax
 *
 */
public class Liste {

  
  static class EvenListAdapter extends AbstractListModel {
    public EvenListAdapter(TableModel model) {
      this.model=model;
    }
    
    public int getSize() {
      return (model.getRowCount()+1)/2;
    }

    public Object getElementAt(int index) {
      return model.getValueAt(index*2, 0);
    }
    
    private final TableModel model;
  }
  
  public static void main(String[] args) {
    JFrame frame=new JFrame();
    
    TableModel model=new Table.ArgTableModel(args);
    JTable table=new JTable(model);
    table.setDefaultRenderer(Integer.class, new DefaultTableCellRenderer(){
      public Component getTableCellRendererComponent(
        JTable table,Object value,
        boolean isSelected,boolean hasFocus,int row,int column) {
        
        int length=((Integer)value).intValue();
        
        setForeground((length>4)?Color.RED:Color.BLACK);

        return super.getTableCellRendererComponent(
          table,
          value,
          isSelected,
          hasFocus,
          row,
          column);
      }

    });
    
    JList list=new JList(new EvenListAdapter(model));
    
    Container c=frame.getContentPane();
    c.setLayout(new GridLayout(1,2));
    c.add(new JScrollPane(table));
    c.add(new JScrollPane(list));
    
    frame.setSize(400,300);
    frame.setVisible(true);
  }
}
