3 millones en foros del web

Registrarte Políticas Wiki 120segs Ayuda Iniciar sesion

Retroceder   Foros del Web > Programación > Java
Respuesta
 
Herramientas Desplegado
Antiguo 29-may-2007, 11:09   #1 (permalink)
 
3 Mensajes
pablopau está desconectado
Añadir Una Tabla A Un Jscrollpane Mediante Eventos

Hola, la situacion es la siguiente:

Tengo un JFrame creado con un JScrollPane y dos botones, lo que quiero es que uno de los botones al ser pulsado cree una tabla y la inserte dentro del JScrollPane y el otro botón que cada vez que sea pulsado añada una columna a la tabla ya existente dentro del JScrollPane.

Mi problema surge al utilizar los eventos que unen el boton y el ScrollPane, ya que no se si se mandan bien o se reciben bien.

Tampoco se muy bien como manejar la tabla que esta dentro del ScrollPane y no se si se deben crear unos objetos nuevos o recargar/pintar unos objetos nuevos.

Muchas Gracias...
  Responder Citando
Antiguo 29-may-2007, 12:37   #2 (permalink)
chuidiang (Reg: octubre-2004)
 
1.120 Mensajes
chuidiang está desconectado
Re: Añadir Una Tabla A Un Jscrollpane Mediante Eventos

Hola:

En tu clase pon todos los elementos como atributos de la clase, para tenerlos accesibles en cualquier sitio

Código:
class TuClase extends JFrame
{
   JScrollPane s = new JScrollPane();
   JButton b1 = new JButton(...);
   JButton b2 = new JButton(...);
   DefaultTableModel modelo = new DefaultTableModel();
   JTable t = null;
   ...
}
Ahora, en algún sitio de esta clase, puedes poner este código para el botón que tiene que añadir la tabla

Código:
b1.addActionListener (new ActionListener() {
   public void actionPerformed(ActionEvent e) {
      if (t == null) {
         t=new JTable(modelo);
         s.setViewporView(t);
      }
   }
});
y para añadir columnas, de forma similar en el otro botón, pero usando el método addColumn() de modelo. Esto debería repintar automáticamente la tabla.

Se bueno.
  Responder Citando
Antiguo 31-may-2007, 12:37   #3 (permalink)
 
3 Mensajes
pablopau está desconectado
Re: Añadir Una Tabla A Un Jscrollpane Mediante Eventos

Hola chuidiang, muchas gracias por ayudarme, pero sigue sin funcionar.....

aquí te dejo el código, los botones siguen sin hacer caso a los eventos...


/*
* NuevoJFrame.java
*
* Created on 31 de mayo de 2007, 18:54
*/
import javax.swing.*;
import javax.swing.table.DefaultTableModel;
import java.awt.event.*;
import javax.swing.JScrollPane;
import javax.swing.JTable;
/**
*
* @author Pablo Paunero
*/
public class NuevoJFrame extends javax.swing.JFrame {


JTable t = null;
DefaultTableModel modelo = new DefaultTableModel();



/** Creates new form NuevoJFrame */
public NuevoJFrame() {
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=" Código Generado ">
private void initComponents() {
s = new javax.swing.JScrollPane();
jButton1 = new javax.swing.JButton();
jButton2 = new javax.swing.JButton();

setDefaultCloseOperation(javax.swing.WindowConstan ts.EXIT_ON_CLOSE);

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

jButton2.setText("A\u00f1adir compas");

org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(org.jdesktop.layout.Gro upLayout.LEADING)
.add(layout.createSequentialGroup()
.add(layout.createParallelGroup(org.jdesktop.layou t.GroupLayout.LEADING)
.add(layout.createSequentialGroup()
.add(97, 97, 97)
.add(s, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 197, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
.add(layout.createSequentialGroup()
.add(115, 115, 115)
.add(jButton1)
.add(18, 18, 18)
.add(jButton2)))
.addContainerGap(77, Short.MAX_VALUE))
);
layout.setVerticalGroup(
layout.createParallelGroup(org.jdesktop.layout.Gro upLayout.LEADING)
.add(layout.createSequentialGroup()
.add(32, 32, 32)
.add(s, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 100, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.add(33, 33, 33)
.add(layout.createParallelGroup(org.jdesktop.layou t.GroupLayout.BASELINE)
.add(jButton1)
.add(jButton2))
.addContainerGap())
);
pack();
}// </editor-fold>

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
if (t == null) {
t=new JTable(modelo);
s.setViewportView(t);

}
}

/**
* @param args the command line arguments
*/
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new NuevoJFrame().setVisible(true);

}
});
}

// Declaración de variables - no modificar
private javax.swing.JButton jButton1;
private javax.swing.JButton jButton2;
private javax.swing.JScrollPane s;
// Fin de declaración de variables

}


P.D: Utilizo netbeans, puede que tenga algo mal configurado???


Muchas Gracias
  Responder Citando
Antiguo 31-may-2007, 12:49   #4 (permalink)
chuidiang (Reg: octubre-2004)
 
1.120 Mensajes
chuidiang está desconectado
Re: Añadir Una Tabla A Un Jscrollpane Mediante Eventos

Hola:

Prueba a llamar al método updateUI() del panel/ventana que contiene la tabla después de haberla añadido. Si la ventana está visible y se le añaden componentes nuevos -en tu caso el JTable-, es posible que no se visualicen hasta que se llame al método updateUI()

Se bueno.
  Responder Citando
Respuesta
No hay votos aún.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.

Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code está Activado
Caritas están Activado
[IMG] está Desactivado
Código HTML está Desactivado
Trackbacks está Desactivado
Pingbacks está Desactivado
Refbacks está Desactivado



La zona horaria es GMT -6. Ahora son las 10:45.
Políticas de Uso de Foros del Web


Message Board Statistics

SEO by vBSEO 3.3.2

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104