elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
27 Mayo 2012, 23:29  


Tema destacado: Personaliza-Escoge el diseño del foro que más te guste.

+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java (Moderadores: Debci, Leyer)
| | | |-+  JTable, leer informacion editada por el usuario
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: JTable, leer informacion editada por el usuario  (Leído 3,604 veces)
Xedrox

Desconectado Desconectado

Mensajes: 186



Ver Perfil
JTable, leer informacion editada por el usuario
« en: 6 Marzo 2011, 01:01 »

Buenas, estoy haciendo un programa de prueba con Netbean, tengo una tabla con 4 columnas y la idea es que al apretar un boton sume el contenido que inserto el usuario en la fila uno al presionar un boton. Como puedo leer el contenido de la Tabla, NetBeans agrega tanto codigo autogenerado que me pierdo :S.

Muchas Gracias
Saludos


En línea
visualfree

Desconectado Desconectado

Mensajes: 143


Ver Perfil
Re: JTable, leer informacion editada por el usuario
« Respuesta #1 en: 6 Marzo 2011, 06:11 »

Aca te hice un codigo de ejemplo:

primero ingresa varios nombres y numeros y luego presiona el boton sumar...
espero te sea de ayuda.

No uso NetBeans.

Código:
import javax.swing.*;
import javax.swing.table.DefaultTableModel;

import java.awt.GridLayout;
import java.awt.event.*;

public class SumaJTable {
public static void main(String[] args) {
NuevaVentana v=new NuevaVentana();
v.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
v.setVisible(true);
}

}
class NuevaVentana extends JFrame{
public NuevaVentana(){
setTitle("Suma JTable");
setSize(ancho,largo);
NuevoPanel p=new NuevoPanel();
add(p);
}
private final int ancho=330;
private final int largo=300;


}
class NuevoPanel extends JPanel{
JLabel lbNombre=new JLabel("Ingresar Nombre:");
JTextField txtNombre=new JTextField();
JLabel lbNumero=new JLabel("Ingresar Numero:");
JTextField txtNumero=new JTextField();
DefaultTableModel modelo=new DefaultTableModel();
{
modelo.addColumn("Nombre");
modelo.addColumn("Numero");
}
JTable tabla=new JTable(modelo);
JScrollPane scroll=new JScrollPane(tabla);
JButton btnSuma=new JButton("Agregar Datos");
JLabel lbSuma=new JLabel("0");
JButton SumarDatos=new JButton("Sumar Datos");
int sumita=0;
public NuevoPanel(){
this.setLayout(null);
lbNombre.setBounds(20,20,120,20);
this.add(lbNombre);
txtNombre.setBounds(20,40,120,20);
this.add(txtNombre);
lbNumero.setBounds(20,60,120,20);
this.add(lbNumero);
txtNumero.setBounds(20,80,120,20);
this.add(txtNumero);
lbSuma.setBounds(20,100,30,30);
this.add(lbSuma);
scroll.setBounds(150,20,140,100);
this.add(scroll);
btnSuma.setBounds(150,120,140,20);
this.add(btnSuma);
SumarDatos.setBounds(150,140,140,20);
this.add(SumarDatos);
OyentebtnSuma oyente=new OyentebtnSuma();
btnSuma.addActionListener(oyente);
OyenteSumarDatos oyente1=new OyenteSumarDatos();
SumarDatos.addActionListener(oyente1);
}
class OyentebtnSuma implements ActionListener{
public void actionPerformed(ActionEvent e){
String nom=txtNombre.getText();
int num=Integer.parseInt(txtNumero.getText());
Object[] fila=new Object[2];
fila[0]=nom;
            fila[1]=num;
            modelo.addRow(fila);
           
}
}
class OyenteSumarDatos implements ActionListener{
public void actionPerformed(ActionEvent e)
{
int aux=0;
for(int i = 0; i < tabla.getRowCount(); i++) 
            {
            sumita = Integer.parseInt(tabla.getValueAt(i, 1).toString());
            aux=sumita+aux;
           
            }
lbSuma.setText(Integer.toString(aux));

       
}
}

}


En línea
Xedrox

Desconectado Desconectado

Mensajes: 186



Ver Perfil
Re: JTable, leer informacion editada por el usuario
« Respuesta #2 en: 6 Marzo 2011, 16:15 »

Gracias por la respuesta, pero antes de complicarme voy a preguntar algo mas simple, supongamos que tengo otra vez un boton, una tabla y un label, yo quiero que al presionar el boton, el label tome texto de lo que hay en la celda 1-1 (primera fila primera columna), pero en vez de eso pone "null". He aqui el codigo:

Código:
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt)
 {                                        
      label.setText(String.valueOf(Tabla.getValueAt(1,1)));
}

Otra que intente y me tira una Excepcion "nullPointerException"

Código:
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt)
 {                                        
      label.setText(Tabla.getValueAt(1,1).toString());
 }

Muchas gracias saludos!

Pego todo el codigo por si ven algo raro:


Código:

package javaapplication6;
import javax.swing.*;
/**
 *
 * @author Nicolas
 */
public class NewJFrame extends javax.swing.JFrame
{

   
    public NewJFrame()
    {
        initComponents();
    }

   
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">                         
    private void initComponents() {

        jButton1 = new javax.swing.JButton();
        jScrollPane1 = new javax.swing.JScrollPane();
        Tabla = new javax.swing.JTable();
        label = new javax.swing.JLabel();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

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

        Tabla.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {
                {null}
            },
            new String [] {
                "Title 1"
            }
        ) {
            Class[] types = new Class [] {
                java.lang.String.class
            };

            public Class getColumnClass(int columnIndex) {
                return types [columnIndex];
            }
        });
        jScrollPane1.setViewportView(Tabla);

        label.setText("Resultado:");

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGap(27, 27, 27)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 185, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(label)
                    .addComponent(jButton1, javax.swing.GroupLayout.PREFERRED_SIZE, 161, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addContainerGap(660, Short.MAX_VALUE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGap(20, 20, 20)
                .addComponent(jButton1, javax.swing.GroupLayout.PREFERRED_SIZE, 40, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 57, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(220, 220, 220)
                .addComponent(label)
                .addContainerGap(47, Short.MAX_VALUE))
        );

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

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         

        label.setText(Tabla.getValueAt(0,0).toString());
     
    }                                       


    // Variables declaration - do not modify                     
    private javax.swing.JTable Tabla;
    private javax.swing.JButton jButton1;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JLabel label;
    // End of variables declaration                   

}
« Última modificación: 7 Marzo 2011, 01:14 por Xedrox » En línea
ChavalChavito

Desconectado Desconectado

Mensajes: 13


Y ahora que pasa...


Ver Perfil
Re: JTable, leer informacion editada por el usuario
« Respuesta #3 en: 7 Marzo 2011, 22:16 »

Código:
private void JTableMousePressed(java.awt.event.MouseEvent evt)
       {
        int fila= JTable.getSelectedRow();
        label.setText((String) dtm.getValueAt(fila, 0)); 
        // d la fila clickeada la primer columna (x eso el 0)
        // dtm DefaultTableModel
}
En línea
Darhius


Desconectado Desconectado

Mensajes: 427


Divide y vencerás.


Ver Perfil
Re: JTable, leer informacion editada por el usuario
« Respuesta #4 en: 7 Marzo 2011, 23:06 »

Hola qué tal.

El problema radica aquí:

Netbeans

jaja no te creas, es en esta parte de código

Código
Tabla.setModel(new javax.swing.table.DefaultTableModel(
           new Object [][] {
               {null}
           },
 

Ya que el valor es nulo al tratar de obtener su valor.

Podrías cambiar el "null" por """:xD

O puedes hacer lo siguiente en el método "jButton1ActionPerformed"

Código
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
    Object objeto = Tabla.getValueAt(0,0);
    if(objeto==null)
    Tabla.setValueAt("",0,0);
 
       label.setText(Tabla.getValueAt(0,0).toString());
   }    
 

Para mi gusto está mejor la primera opción.

Saludos.
En línea

"Cuenta mi historia... a quienes pregunten, cuéntala con verdad, las cosas malas junto con las buenas  y permite que sea juzgado apegado ellas... el resto... es silencio." Dinobot (Beast Wars Transformers)
Xedrox

Desconectado Desconectado

Mensajes: 186



Ver Perfil
Re: JTable, leer informacion editada por el usuario
« Respuesta #5 en: 8 Marzo 2011, 02:26 »

Muchas Gracias por las respuestas. Saludos!
En línea
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Información de usuario en un programa
Programación Visual Basic
Ch3ck 3 492 Último mensaje 17 Junio 2005, 00:56
por Slasher-K
leer informacion WIFI
Hacking Wireless
gavi23 4 695 Último mensaje 5 Febrero 2008, 11:31
por pianista
Recolectar informacion del usuario...
PHP
Murd3r3r 0f daT4 6 1,078 Último mensaje 26 Junio 2009, 00:52
por HardieVon
Leer "numeros" de todas las filas de un JTable y luego sumarlos.
Java
NelxoN 2 1,911 Último mensaje 16 Noviembre 2010, 18:42
por Aeros
Google premiará al usuario por leer noticias
Noticias
wolfbcn 1 456 Último mensaje 18 Julio 2011, 16:32
por raul338
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines