JTable - Todos sus posibles usos

Iniciado por CorazonValiente, 9 Agosto 2008, 00:21 AM

0 Miembros y 1 Visitante están viendo este tema.

CorazonValiente

Saludos.

Es una de las herramientas que mas me gusta en Netbeans y quisiera conocer mas acerca de ellas, no soy un experto, pero apenas tenga tiempo colocare a dispocision mis conocimientos (En realidad es creatividad).

Pregunto: como puedo usar un jTable para tomar datos, ya saben como si fuera un jTextField.

BUEN DIA A TODOS LOS PROGRAMADORES

sapito169

Cita de: CorazonValiente en  9 Agosto 2008, 00:21 AM
Saludos.

Es una de las herramientas que mas me gusta en Netbeans y quisiera conocer mas acerca de ellas, no soy un experto, pero apenas tenga tiempo colocare a dispocision mis conocimientos (En realidad es creatividad).

Pregunto: como puedo usar un jTable para tomar datos, ya saben como si fuera un jTextField.

BUEN DIA A TODOS LOS PROGRAMADORES



oye estas confundido el Jtable no es una herramienta del netbeans no tiene nada que ver

el lenguaje java es unico y ay un monton de porgramas que trabajon con el llamados ides (Jdeveloper, netbeans, Jcreator,etc ) este lenguaje tinene barias clases prediseñadas  por lo cual cualquier ide trabja con esas clases es decir que el Jdeveloper crea Jtables como lo ase el netbeans y todo el resto de los ides


bueno para resolver tu pregunta Como uso la clase Jtable que pertenece a java y que puede ser usado por cualquier ide no solo sea netbeans

primero se crea un defaulttablemodel con esto puedes sacar y meter datos de tu tabla y luego la tabla en si en el defaulttablemodel le ases los cambios

asi:


private DefaultTableModel modelo = new DefaultTableModel()
private JTable tabla = new JTable();



luego a tu tabla le dises cual es su modelo que forma tiene cuantas filas y columnas tienes

tabla.setModel(tablita);
tabla.setBounds(new Rectangle(10, 60, 510, 370));
modelo.setColumnCount(15);
modelo.setRowCount(15);

luego para meter y sacar datos se los ases en tu  defaulttablemodel
asi:

//poniendo los datos en la tabla se tiene que especificar fila y columna

modelo.setValueAt( dato ,fila ,columna );


//sacar datos de la tabla

modelo.getValueAt(fila ,columna);

sapito169

temgo un monton de ejercicios echos con jtable pero no son muy faciles de comprender si quieres te lo mando

-Ramc-

Cita de: sapito169 en  9 Agosto 2008, 02:02 AM
temgo un monton de ejercicios echos con jtable pero no son muy faciles de comprender si quieres te lo mando
Seria muy enriquecedor si subes tus códigos para que todos los veamos ;)

Shhh... be vewy, vewy, quiet!  I'm hunting wabbits...
LA PANDILLA MAS GRANDE DE MI CIUDAD, SE LLAMA POLICIA NACIONAL.

sapito169

bueno como estoy con tiempo libre te boy a poner algunos ejemplos bien expicladitos

import java.awt.Dimension;

import java.awt.Rectangle;

import javax.swing.JFrame;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;

public class Frame1 extends JFrame{
    //mis varibles globales
   
    //esta es mi tabla
    JTable tablita=new JTable();
    /* */
   
    //este es mi modelo
    DefaultTableModel modelo=new DefaultTableModel();
    /* */
   
    public Frame1(){
    //contrusctor de la ventan
        try{
            jbInit();
        }
        catch(Exception e){
            e.printStackTrace();
        }
    }


    private void jbInit() throws Exception{
        //este metodo se aplica en mi contructor no es necesario crealo de esta forma
        //no todos los ides trabjan asi
        this.getContentPane().setLayout( null );
        this.setSize( new Dimension(400, 300) );
        this.setTitle("ejemplo uno");
        tablita.setBounds(new Rectangle(35,85,310,20));
        modelo.setColumnCount(16);
        modelo.setRowCount(1);
        this.getContentPane().add(tablita,null);
        //le desimos a mi tabla cual ba a hacer su modelo
       
        tablita.setModel(modelo);
       
        //lenamos balores a la tabla
        //ten en cuenta que la fila y la culmna comiensan en 0
        tablita.setValueAt("c",0,0);
        tablita.setValueAt("o",0,1);
        tablita.setValueAt("r",0,2);
        tablita.setValueAt("a",0,3);
        tablita.setValueAt("s",0,4);
        tablita.setValueAt("o",0,5);
        tablita.setValueAt("n",0,6);
        tablita.setValueAt("",0,7);
        tablita.setValueAt("b",0,8);
        tablita.setValueAt("a",0,9);
        tablita.setValueAt("l",0,10);
        tablita.setValueAt("i",0,11);
        tablita.setValueAt("e",0,12);
        tablita.setValueAt("n",0,13);
        tablita.setValueAt("t",0,14);
        tablita.setValueAt("e",0,15);
       
    }
    public  static void main(String[] args){
        JFrame frame=new Frame1();
        frame.setVisible(true);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
}


CorazonValiente

Gracias; es muy interensante, estoy entre personas que manejan mucho mas la programacion que yo, sigan dando sus opiniones, sus consejos los usos para idear pequeñas aplicaciones.

Para mostrar datos en una tabla siempre uso vectores y matrices asi:

import javax.swing.JTable;
private void jTable1AncestorAdded(javax.swing.event.AncestorEvent evt) {                                     
               
        Procedimientos op=new Procedimientos();
        jTable1.setModel(new javax.swing.table.DefaultTableModel(
            op.Matrix(),
            new String [] {"Nombre", "Modelo", "Rendimiento x galon",
                                   "Precio", "Cantidad"}
        ));
       
    }   

QUERIA ADJUNTARLES LA APLICACION COMPLETA PERO NO ENCONTRE COMO: ;D

sapito169

no te preocupes copia y pega toda la clase completa
nosotros  lo compilamos y ejecutamos facil

CorazonValiente

#8
Saludos.

Como dije al inicio no soy muy experimentado en la programacion, les mando un sencillo codigo de como hago para introducir datos en una tabla.

=================================================
/*
* main.java
*
* Created on 3 de agosto de 2008, 04:26 PM
*/



/**
*
* @author  Rey Salcedo
*/
public class main extends javax.swing.JFrame {
   
    /** Creates new form main */
    public main() {
        initComponents();
    }
   
    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    // <editor-fold defaultstate="collapsed" desc="Generated Code">                         
    private void initComponents() {

        jScrollPane1 = new javax.swing.JScrollPane();
        jTable1 = new javax.swing.JTable();
        jButton1 = new javax.swing.JButton();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        jTable1.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {
                {null, null, null, null, null},
                {null, null, null, null, null},
                {null, null, null, null, null},
                {null, null, null, null, null}
            },
            new String [] {
                "nombre", "apellidos", "cedula", "telefono", "direcion"
            }
        ));
        jScrollPane1.setViewportView(jTable1);

        jButton1.setText("VER");
        jButton1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton1ActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jButton1, javax.swing.GroupLayout.PREFERRED_SIZE, 108, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 375, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addContainerGap(15, Short.MAX_VALUE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGap(59, 59, 59)
                .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 84, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(18, 18, 18)
                .addComponent(jButton1)
                .addContainerGap(25, Short.MAX_VALUE))
        );

        pack();
    }// </editor-fold>                       

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
jTable1.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {
                {"tania", "olivero", "231343432", "7762562", "uiwuriwr"},
                {"rey", "salcedo", "78076126", "757575", "dhjash"},
                {null, null, null, null, null},
                {null, null, null, null, null}
            },
            new String [] {
                "nombre", "apellidos", "cedula", "telefono", "direcion"
            }
        ));
    }                                       
   
    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new main().setVisible(true);
            }
        });
    }
   
    // Variables declaration - do not modify                     
    private javax.swing.JButton jButton1;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JTable jTable1;
    // End of variables declaration                   
   
}

===========================================
;D

CorazonValiente

Aprovecho, con el codigo que coloque; como pueden ver si hacen clic en el boton me muestra unos datos;

Me gustaria saber como hace lo inverso, es decir introducir datos en la tabla, hacer clic en el boton y guardar los datos en la matrix.

;) ;)