Problemas Con Tabla

Iniciado por ZedGe, 26 Noviembre 2011, 22:40 PM

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

ZedGe

Este Es mi código, al ingresa 12 caracteres se ingresan dentro de la primera fila, y luego la segunda y al otra y la otra.
EL problema que al ingresar en las primeras 12, la 13 14 y 15 no se ingresa nada, es mas si se baja desaparecen todas :S, al sacar el Scrollpane y dejar la ventana grande justo para ver las 15 filas no pasa ese problema :S




package puntodeventa;


import java.awt.Color;
import java.awt.Font;
import java.awt.Label;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Vector;
import javax.swing.*;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;


public class tabla extends JFrame implements ActionListener, KeyListener{
 
   String perro;
   JPanel p1 = new JPanel(null);
   int productos = 0;
   JTabbedPane panelConFichas = new JTabbedPane();
   private JTextField campoTexto1;
   private JSpinner spinner;
   private JLabel etiqueta1;
   private Label Label5, Label6, Label7, Label8, Label9, Label10, Label11, Label12, Label13;
   String variableCodigo;
   String codigos[] = new String[16];
   int a = 0;
   public final static Color Gris = new Color(164, 159, 159);
   String[] strings = new String[5];
     
   public final static Color GRIS = Gris;
   private String[][] codigo2 = new String[200][200];  
   private JScrollPane scpEjemplo;

    public tabla() {
     
     
       campoTexto1 = new JTextField( 30 );
       campoTexto1.setBounds(250,50,500,50);
       p1.add( campoTexto1 );
       campoTexto1.setFont(new Font("sansserif", Font.BOLD, 40));
       campoTexto1.addActionListener(this);
       
       
       spinner = new JSpinner();
spinner.setValue(1);
      spinner.addChangeListener(new ChangeListener() {
@Override
public void stateChanged(ChangeEvent e) {
// Ponemos el valor del JSpinner en el JTextField
                               String cantidad;
cantidad = spinner.getValue().toString();
}
});
       spinner.setBounds(750,50,50,50);
       p1.add( spinner );
       
       etiqueta1 = new JLabel( "VENTA 1", null,
       SwingConstants.LEFT );
       etiqueta1.setBounds(810,30,350,90);
       p1.add( etiqueta1 );
     
       Label5 = new Label ("      CÓDIGO");
       Label5.setFont(new Font("sansserif", Font.BOLD, 13));
       Label5.setForeground(Color.white);
     
       Label5.setBounds(20,120,137,30);
       p1.add (Label5);  
       Label5.setBackground (Gris);
       
       Label6 = new Label ("    CANTIDAD");
       Label6.setFont(new Font("sansserif", Font.BOLD, 13));
       Label6.setForeground(Color.white);
     
       Label6.setBounds(158,120,107,30);
       p1.add (Label6);  
       Label6.setBackground (Gris);
       
       Label7 = new Label ("                                      ARTÍCULO                      ");
       Label7.setFont(new Font("sansserif", Font.BOLD, 13));
       Label7.setForeground(Color.white);
     
       Label7.setBounds(266,120,368,30);
       p1.add (Label7);  
       Label7.setBackground (Gris);
     
       Label8 = new Label ("PRECIO UNITARIO");
       Label8.setFont(new Font("sansserif", Font.BOLD, 13));
       Label8.setForeground(Color.white);
     
       Label8.setBounds(635,120,125,30);
       p1.add (Label8);  
       Label8.setBackground (Gris);
       
       Label9 = new Label ("    IMPORTE");
       Label9.setFont(new Font("sansserif", Font.BOLD, 13));
       Label9.setForeground(Color.white);
       
       Label9.setBounds(761,120,120,30);
       p1.add (Label9);  
       Label9.setBackground (Gris);


       panelConFichas.setFont(new Font("sansserif", Font.BOLD, 18));
       panelConFichas.addTab("                        Venta 1                         ",
       null, p1, "Venta 1");
       
       getContentPane().add(panelConFichas);

       campoTexto1.addKeyListener(this);

         } //cierra el constructor
 
@Override
public void keyTyped(KeyEvent e) {
}

@Override
public void keyPressed(KeyEvent e) {
}

public void keyReleased(KeyEvent e) {

variableCodigo = campoTexto1.getText();
int longitud=variableCodigo.length();
codigos[a]= variableCodigo;


Vector<String> row1 = new Vector<String>();
 row1.addElement(codigos[0]);
 row1.addElement(codigos[0]);
 row1.addElement(codigos[0]);
 row1.addElement(codigos[0]);
 row1.addElement(codigos[0]);
Vector<String> row2 = new Vector<String>();  
row2.addElement(codigos[1]);
row2.addElement(codigos[1]);
row2.addElement(codigos[1]);
row2.addElement(codigos[1]);
row2.addElement(codigos[1]);
Vector<String> row3 = new Vector<String>();
row3.addElement(codigos[2]);
row3.addElement(codigos[2]);
row3.addElement(codigos[2]);
row3.addElement(codigos[2]);
row3.addElement(codigos[2]);
Vector<String> row4 = new Vector<String>();
row4.addElement(codigos[3]);
row4.addElement(codigos[3]);
row4.addElement(codigos[3]);
row4.addElement(codigos[3]);
row4.addElement(codigos[3]);
Vector<String> row5 = new Vector<String>();
row5.addElement(codigos[4]);
row5.addElement(codigos[4]);
row5.addElement(codigos[4]);
row5.addElement(codigos[4]);
row5.addElement(codigos[4]);
Vector<String> row6 = new Vector<String>();
row6.addElement(codigos[5]);
row6.addElement(codigos[5]);
row6.addElement(codigos[5]);
row6.addElement(codigos[5]);
row6.addElement(codigos[5]);
Vector<String> row7 = new Vector<String>();
row7.addElement(codigos[6]);
row7.addElement(codigos[6]);
row7.addElement(codigos[6]);
row7.addElement(codigos[6]);
row7.addElement(codigos[6]);
Vector<String> row8 = new Vector<String>();
row8.addElement(codigos[7]);
row8.addElement(codigos[7]);
row8.addElement(codigos[7]);
row8.addElement(codigos[7]);
row8.addElement(codigos[7]);
Vector<String> row9 = new Vector<String>();
row9.addElement(codigos[8]);
row9.addElement(codigos[8]);
row9.addElement(codigos[8]);
row9.addElement(codigos[8]);
row9.addElement(codigos[8]);
Vector<String> row10 = new Vector<String>();
row10.addElement(codigos[9]);
row10.addElement(codigos[9]);
row10.addElement(codigos[9]);
row10.addElement(codigos[9]);
row10.addElement(codigos[9]);
Vector<String> row11 = new Vector<String>();
row11.addElement(codigos[10]);
row11.addElement(codigos[10]);
row11.addElement(codigos[10]);
row11.addElement(codigos[10]);
row11.addElement(codigos[10]);
Vector<String> row12 = new Vector<String>();
row12.addElement(codigos[11]);
row12.addElement(codigos[11]);
row12.addElement(codigos[11]);
row12.addElement(codigos[11]);
row12.addElement(codigos[11]);
Vector<String> row13 = new Vector<String>();
row13.addElement(codigos[12]);
row13.addElement(codigos[12]);
row13.addElement(codigos[12]);
row13.addElement(codigos[12]);
row13.addElement(codigos[12]);
Vector<String> row14 = new Vector<String>();
row14.addElement(codigos[13]);
row14.addElement(codigos[13]);
row14.addElement(codigos[13]);
row14.addElement(codigos[13]);
row14.addElement(codigos[13]);
Vector<String> row15 = new Vector<String>();
row15.addElement(codigos[14]);
row15.addElement(codigos[14]);
row15.addElement(codigos[14]);
row15.addElement(codigos[14]);
row15.addElement(codigos[14]);

 Vector<Vector> rowData = new Vector<Vector>();
   rowData.addElement(row1);
   rowData.addElement(row2);
   rowData.addElement(row3);
   rowData.addElement(row4);
   rowData.addElement(row5);
   rowData.addElement(row6);
   rowData.addElement(row7);
   rowData.addElement(row8);
   rowData.addElement(row9);
   rowData.addElement(row10);
   rowData.addElement(row11);
   rowData.addElement(row12);
   rowData.addElement(row13);
   rowData.addElement(row14);
   rowData.addElement(row15);

    Vector<String> columnNames = new Vector<String>();
   columnNames.addElement(" ");
   columnNames.addElement(" ");
   columnNames.addElement(" ");
   columnNames.addElement(" ");
   columnNames.addElement(" ");
   
   JTable table = new JTable(rowData, columnNames);
   
    scpEjemplo= new JScrollPane();

     
       table.getColumnModel().getColumn(0).setResizable(false);
       table.getColumnModel().getColumn(0).setPreferredWidth(50);
       table.getColumnModel().getColumn(1).setResizable(false);
       table.getColumnModel().getColumn(1).setPreferredWidth(21);
       table.getColumnModel().getColumn(2).setResizable(false);
       table.getColumnModel().getColumn(2).setPreferredWidth(282);
       table.getColumnModel().getColumn(3).setResizable(false);
       table.getColumnModel().getColumn(3).setPreferredWidth(40);
       table.getColumnModel().getColumn(4).setResizable(false);
       table.getColumnModel().getColumn(4).setPreferredWidth(0);
       scpEjemplo.add(table);
       
       
       scpEjemplo.setBounds(20,132,862,194); //194
       p1.add(table);
       p1.add(scpEjemplo);
     
       scpEjemplo.setViewportView(table);

if( longitud > 12){
 
 if(productos >= 0){
 campoTexto1.setText("");
 }
    //JScrollPane pane = new JScrollPane(table);
   //add(pane, BorderLayout.CENTER);
  // JScrollPane scrollPane = new JScrollPane(table);
   
   //  private JTable tblEjemplo;
 //  private JScrollPane scpEjemplo;
 
productos++;
longitud=0;
variableCodigo=" ";
a++;
}

}
   public void actionPerformed(ActionEvent e) {
   
   }    
 
     public static void main(String[] ar) {
       tabla formulario=new tabla();
       formulario.setBounds(0,0,1025,570);
       formulario.setVisible(true);
       formulario.setLocation(0,160);
       formulario.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     

   }
}



ZedGe

#1
Note por que pasa eso creo.... Al apretar cualquier tecla o boton o algo el keyPressed funciona Vector<String> row1 o row2 o ropw3.... = new Vector<String>();


vuelve a crear una fila... si la pongo en el constructor no podre usarla abajo, si la pongo como variable static no se que pasa xD... díganme si estoy en lo cierto o no...


Lo arregle dándoles en un principio los valores de codigos[n], ya que al principio son null, solo después se editan y si tienen otro valor se cambia el null por ese valor.

Pero aun al apretarlos con el mause se borran los datos...




ZedGe

PROBLEMA SOLUCIONADO:


Cambie el tipo para crear la tabla y la saque de ese lugar donde cada vez que apretaba algo se creaba encima todo