Llenar Table con mis datos recibidos en Eclipse WindowsBuilder

publicado por: Anonymous

Por primera vez estoy tratando de aprender a trabajar con tablas pero, leyendo manuales y videos, no logro entender mucho ya que casi todos estan en ingles.

Mi programa es este, con la tabla añadida:
introducir la descripción de la imagen aquí

En el código, solamente tengo esto.

Declaro:

private final JTable table;

Código de la tabla en sí:

table =  new JTable();
        table.setBounds(10, 297, 445, 143);
        contentPane.add(table);

De acuerdo a lo que logré entender, hay que crear dos arreglos:

  1. arreglo1 [] = {"#", "origen", "destino", "duracion", "precio"};
  2. arreglo2 [][] = null;

Siendo el 1er el título. Hasta aquí no logré entender nada.
Espero puedan ayudarme por favor.
También me interesa tenerle un Scroll para poder bajar y subir y ver los datos.

solución

bueno si tienes razon hay que crear dos arreglos

1) para las cabeceras(o nombre de columna) de tu tabla

String[] columnas= {"#", "origen", "destino", "duracion", "precio"};

2) para los datos de tu tabla

String [][] data = {
                {"1", "Casa", "Trabajo", "20 minutos", "4000"},
                {"2", "Trabajo", "Casa", "30 minutos", "5000"}
};

Luego tienes tu tabla

DefaultTableModel model = new DefaultTableModel(data, columnas);
JTable tabla = new JTable(model);

Para agregar un scroll a tu tabla

JScrollPane scroll = new JScrollPane(tabla);
scroll.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS); 
add(scroll);

Ahora para agregar distintos valores a tu tabla, como tenemos un model que es el orden el cual tu quieres que se muestren los datos

Object[] row = {"3", "Casa", "Playa", "50 minutos", "10000"};
DefaultTableModel model = (DefaultTableModel) tabla.getModel();

model.addRow(row);

EDIT

No agregue todo tu codigo porque no tengo las clases ni nada de eso, tampoco pude acomodar visualmente como tu quieres obtener la vista, pero con esto se soluciona el problema. Como la clase extends de JFrame le damos add a los elementos y no es necesario crear un panel.

public static void main(String[] args) {
    // TODO Auto-generated method stub
    GUI frame = new GUI();
     frame.pack();
     frame.setVisible(true);
}

public GUI(){
    JTextField txtNumeroOrigen;
    JTextField txtNumeroDestino;
    JTextField txtDuracion;
    JTextField txtPrecioTotal;
    JCheckBox checkboxProvincial;
    JCheckBox checkboxLocal;
    JCheckBox checkboxFranja1;
    JCheckBox checkboxFranja2;
    JCheckBox checkboxFranja3;
    JTextField txtTotalDeLlamadas;
    JTextField txtPrecioActual;
    JTable table;
    setTitle("Call Center");
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setBounds(100, 100, 471, 480);

    JLabel lblTipo = new JLabel("Tipo:");
    lblTipo.setBounds(16, 30, 46, 14);
    add(lblTipo);

    JLabel lblFraja = new JLabel("Franja:");
    lblFraja.setBounds(125, 30, 46, 14);
    add(lblFraja);

    JLabel lblNmeroOrigen = new JLabel("Nu00FAmero Origen");
    lblNmeroOrigen.setBounds(200, 30, 108, 14);
    add(lblNmeroOrigen);

    JLabel lblNmeroDestino = new JLabel("Nu00FAmero Destino");
    lblNmeroDestino.setBounds(200, 55, 108, 14);
    add(lblNmeroDestino);

    JLabel lblDuracion = new JLabel("Duraciu00F3n");;
    lblDuracion.setBounds(200, 81, 108, 14);
    add(lblDuracion);

    txtNumeroOrigen = new JTextField();
    txtNumeroOrigen.setBounds(318, 27, 130, 20);
    add(txtNumeroOrigen);
    txtNumeroOrigen.setColumns(10);

    txtNumeroDestino = new JTextField();
    txtNumeroDestino.setBounds(318, 55, 130, 20);
    add(txtNumeroDestino);
    txtNumeroDestino.setColumns(10);

    txtDuracion = new JTextField();
    txtDuracion.setBounds(318, 86, 130, 20);
    add(txtDuracion);
    txtDuracion.setColumns(10);

    Object[][] data = {
            {"1", "Casa", "Trabajo", "20 minutos", "4000"},
            {"2", "Trabajo", "Casa", "30 minutos", "5000"}
     };
     //array de String's con los títulos de las columnas
     String[] columnNames = {"#", "origen", "destino", "duracion", "precio"};
     //se crea la Tabla
     table = new JTable(data, columnNames);
     //table.setPreferredScrollableViewportSize(new Dimension(500, 70));
     //Creamos un JscrollPane y le agregamos la JTable
     JScrollPane scrollPane = new JScrollPane(table);
     add(scrollPane);
}
Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *