Ver Mensaje Individual
  #1 (permalink)  
Antiguo 17/08/2009, 17:31
joc007
 
Fecha de Ingreso: julio-2009
Mensajes: 3
Antigüedad: 15 años, 9 meses
Puntos: 0
ayuda con la tabla

no se por que no funciona el JScrollPane ni me presenta las columnas solo se ven las filas.

Código:
package gui;

import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.GregorianCalendar;

import javax.swing.DefaultCellEditor;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.table.AbstractTableModel;
import javax.swing.table.DefaultTableColumnModel;
import javax.swing.table.JTableHeader;
import javax.swing.table.TableCellEditor;
import javax.swing.table.TableColumn;
import javax.swing.table.TableColumnModel;

import calendario.DateChooser;

import objects.Usuario;

public class Cita extends JFrame{

	private static final long serialVersionUID = 1L;

	public Cita() {

		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		this.setSize(150, 150);
		start();
	}
	private boolean DEBUG = false;
	
    //variables de instancia
	GregorianCalendar date = new GregorianCalendar();
	Usuario user = new Usuario();
	 DateChooser dc = new DateChooser(this, date);
	//Paneles
	private JPanel pnl1;
	private JPanel pnl2;
	private JPanel pnl3;
	//Botones
	private JButton b1;
	private JButton b2;
	//labels
	private JLabel lbl1;
	private JLabel lbl2;
	private JLabel lbl3;
	//TextFields
	private JTextField txt1;
	private JTextField txt2;
	private JTextField txt3;
	//CheckBox
	JCheckBox chk1;
	JCheckBox chk2;
	
	//Table
	 private JTable tabla1;
	JScrollPane scrollPane = new JScrollPane(tabla1);
	TableCellEditor editor;
	TableColumnModel columname = new DefaultTableColumnModel();
	
	private void start() {
		pnl1 = new JPanel();
		pnl2 = new JPanel();
		pnl3 = new JPanel();
		txt1 = new JTextField();
		txt2 = new JTextField();
		txt3 = new JTextField();
		new JTextField();
		b2 = new JButton("Fecha Cita");
		b1 = new JButton("Agregar");
		
		pnl3.setLayout(new GridLayout(10,1));
		lbl1 = new JLabel("  Nombre");
		lbl2 = new JLabel("  Apellido");
		lbl3 = new JLabel("  Telefono");
		new JLabel("  Hora/Fecha");
		MyTableModel tm = new MyTableModel();
		tabla1 = new JTable(tm);
		getContentPane().add(scrollPane, BorderLayout.CENTER);
		tabla1.setPreferredScrollableViewportSize(new Dimension(500, 70));
		tabla1.setFillsViewportHeight(true);
		//Esta Vivo VIVOOOO!!!!!
		//esto sirve para que el valor booleano se vea como una checkbox
		tabla1.getColumnModel().getColumn(4).setCellEditor(new DefaultCellEditor(chk1 = new JCheckBox()));
		tabla1.getColumnModel().getColumn(5).setCellEditor(new DefaultCellEditor(chk2 = new JCheckBox()));
		
	}
	public static void main(String[] args) {
		Cita ct = new Cita();
		ct.init();
		ct.setVisible(true);
		ct.pack();
		
	}
	
	private void init() {
		this.getContentPane().add(pnl1, BorderLayout.CENTER);
		pnl1.add(pnl2, BorderLayout.NORTH);
		pnl1.add(pnl3, BorderLayout.SOUTH);
		pnl2.setLayout(new BorderLayout());
		pnl2.add(tabla1, BorderLayout.CENTER);
		//pnl2.add(tabla1.getTableHeader(), BorderLayout.NORTH);
		pnl3.add(lbl1);
		pnl3.add(txt1);
		pnl3.add(lbl2);
		pnl3.add(txt2);
		pnl3.add(lbl3);
		pnl3.add(txt3);
		//pnl3.add(lbl4);
		//pnl3.add(txt4);
		pnl3.add(b2);
		//accion del boton mostrar fecha.
		
		b2.addActionListener(new ActionListener(){

		public void actionPerformed(ActionEvent arg0) {
		   if (dc.showDateChooser() == DateChooser.OK_OPTION) {
		        System.out.println(dc.dateSelect);
		        user.setCita(dc.dateSelect);
		       	   }
			}
		});
		
		pnl3.add(b1);
		//accion del boton agregar
		b1.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				user.setNombre(txt1.getText());
		        user.setApellido(txt2.getText());
		        user.setTelefono(txt3.getText());	
		        System.out.println(user.toString());
			}
		});
	chk1.addActionListener(new ActionListener(){

		public void actionPerformed(ActionEvent e) {
		    System.out.println(chk1.isSelected());
		}});
	
	chk2.addActionListener(new ActionListener(){

		public void actionPerformed(ActionEvent e) {
		    System.out.println(chk1.isSelected());
		}});
	}
	
	
	//Abstract Table Model modelo de la trabla que sirve.
	
	private class MyTableModel extends AbstractTableModel {
		  public MyTableModel() { 
	        } 
		  
		  private String [] columns = {"Nombre", "Apellido",
					"Telefono","Fecha-Hora","Presente", "Emergencia"
					};
			private Object [][] data = {
					{"Josia", "Olivo", "Castillo", "14/07/2009", new Boolean(true),new Boolean(false)},
					{"Josue", "Olivo", "Castillo", "14/07/2009", new Boolean(false),new Boolean(true)},
					{"Josia", "Olivo", "Castillo", "14/07/2009", new Boolean(true),new Boolean(false)},
					{"Josue", "Olivo", "Castillo", "14/07/2009", new Boolean(false),new Boolean(true)},
					{"Josia", "Olivo", "Castillo", "14/07/2009", new Boolean(true),new Boolean(false)},
					{"Josue", "Olivo", "Castillo", "14/07/2009", new Boolean(false),new Boolean(true)},
					{"Josia", "Olivo", "Castillo", "14/07/2009", new Boolean(true),new Boolean(false)},
					{"Josue", "Olivo", "Castillo", "14/07/2009", new Boolean(false),new Boolean(true)},
					{"Josia", "Olivo", "Castillo", "14/07/2009", new Boolean(true),new Boolean(false)},
					{"Josue", "Olivo", "Castillo", "14/07/2009", new Boolean(false),new Boolean(true)},
					{"Josia", "Olivo", "Castillo", "14/07/2009", new Boolean(true),new Boolean(false)},
					{"Josue", "Olivo", "Castillo", "14/07/2009", new Boolean(false),new Boolean(true)},
					{"Josia", "Olivo", "Castillo", "14/07/2009", new Boolean(true),new Boolean(false)},
					{"Josue", "Olivo", "Castillo", "14/07/2009", new Boolean(false),new Boolean(true)},
					{"Josia", "Olivo", "Castillo", "14/07/2009", new Boolean(true),new Boolean(false)},
					{"Josue", "Olivo", "Castillo", "14/07/2009", new Boolean(false),new Boolean(true)},
					{"Josia", "Olivo", "Castillo", "14/07/2009", new Boolean(true),new Boolean(false)},
					{"Josue", "Olivo", "Castillo", "14/07/2009", new Boolean(false),new Boolean(true)},
					{"Josia", "Olivo", "Castillo", "14/07/2009", new Boolean(true),new Boolean(false)},
					{"Josue", "Olivo", "Castillo", "14/07/2009", new Boolean(false),new Boolean(true)},
					{"Josia", "Olivo", "Castillo", "14/07/2009", new Boolean(true),new Boolean(false)},
					{"Josue", "Olivo", "Castillo", "14/07/2009", new Boolean(false),new Boolean(true)},
					{"Josia", "Olivo", "Castillo", "14/07/2009", new Boolean(true),new Boolean(false)},
					{"Josue", "Olivo", "Castillo", "14/07/2009", new Boolean(false),new Boolean(true)},
					{"Josia", "Olivo", "Castillo", "14/07/2009", new Boolean(true),new Boolean(false)},
					{"Josue", "Olivo", "Castillo", "14/07/2009", new Boolean(false),new Boolean(true)},
					{"Josia", "Olivo", "Castillo", "14/07/2009", new Boolean(true),new Boolean(false)},
					{"Josue", "Olivo", "Castillo", "14/07/2009", new Boolean(false),new Boolean(true)},
					{"Josia", "Olivo", "Castillo", "14/07/2009", new Boolean(true),new Boolean(false)},
					{"Josue", "Olivo", "Castillo", "14/07/2009", new Boolean(false),new Boolean(true)},
					
			
			};
		  
		private static final long serialVersionUID = 1L;
		

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

		public int getRowCount() {
			return data.length;
		}

	    public Class<? extends Object> getColumnClass(int c) {
	        return getValueAt(0, c).getClass();
	    }
	    
	    public Object getValueAt(int row, int col) {
	        return data[row][col]; 
	}
	    
        public boolean isCellEditable(int row, int col) {
            //Note that the data/cell address is constant,
            //no matter where the cell appears onscreen.
            if (col < 2) {
                return false;
            } else {
                return true;
            }
        }
        
	    public void setValueAt(Object value, int row, int col) {
            if (DEBUG) {
                System.out.println("Setting value at " + row + "," + col
                                   + " to " + value
                                   + " (an instance of "
                                   + value.getClass() + ")");
            }

            data[row][col] = value;
            fireTableCellUpdated(row, col);

            if (DEBUG) {
                System.out.println("New value of data:");
                printDebugData();
            }
        }
	    
        private void printDebugData() {
            int numRows = getRowCount();
            int numCols = getColumnCount();

            for (int i=0; i < numRows; i++) {
                System.out.print("    row " + i + ":");
                for (int j=0; j < numCols; j++) {
                    System.out.print("  " + data[i][j]);
                }
                System.out.println();
            }
            System.out.println("--------------------------");
        }
}
}