Eliminar Fila De Jtable(Jtabla Sin Model)

Iniciado por ZedGe, 28 Noviembre 2011, 03:49 AM

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

ZedGe

Hola cree una tabla, que al ingresar 8 numeros en el textfield se rellenan los campos, según búsqueda de una base de datos, el problema es que no se como eliminar 1 fila en caso de ingresar mal  el codigo o algo asi,

Me gustaría que al hacer dobleclick sobre ella,  seleccionar un boton se borrara la fial por completa o que simplemente desaparezca aqui el codigo


O Si se puede cambiar este modelo de tabla a uno con Model mucho mejor =D, en realidad no se usar ese tipod e Jtable


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.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.io.File;
import javax.swing.*;
import javax.swing.table.DefaultTableModel;
import jxl.Sheet;
import jxl.Workbook;


public class clase extends JFrame implements ActionListener, KeyListener{
   

   private int encontro=0;
   int variable1,variable2;
   int resultado[] = new int[15];
   private boolean entroCodigo = false;
   private  static int estoes=2;
   int ano=0;
   String datos[][] = new String[2000][2000];
   JPanel p1 = new JPanel(null);
   int j, i, k=0,l=0;
   String datoImprimido[] = new String[200];
   String datoEncontrado[] = new String[200];  
   String cantidad = null;
 
    String codigos[] = new String[16];
    String variableCodigo;
    JTabbedPane panelConFichas = new JTabbedPane();// crando herramienta de fichas
   
    private JButton botonCancelarArticulo;
    private ImageIcon imagenCancelarArticulo;
    private JButton botonCantidadAumento;
    private ImageIcon imagenCantidadAumento;
    private JButton botonCantidadDecremento;
    private ImageIcon imagenCantidadDecremento;
    private JTextField campoTexto1;
    private JTextField numeroProductos;
         
    public final static Color Gris= new Color(164, 159, 159);
    String[] strings =new String[5];  
    public final static Color GRIS = Gris;
    private  String codigo;

   
   
   
   private JTable tblEjemplo;
   private JScrollPane scpEjemplo;
   private DefaultTableModel dtmEjemplo;

    int a =0;
   


   
    public clase() {
     
      //setLayout(null);//Trabajamos Sin Layout... Si estiramos la ventana se quedaran en su lugar los botones  
     
        //empieza la primera pestaña
     
        //Creamos un Jbutton
        //Dentro del constructor podria ir el
//texto del boton pero en esta ocasion
//meteremos otro boton

       imagenCancelarArticulo=new ImageIcon("CancelarArticulo.png");
       botonCancelarArticulo=new JButton(imagenCancelarArticulo);
       botonCancelarArticulo.setIcon(imagenCancelarArticulo);
       botonCancelarArticulo.setToolTipText("F3 Cancelar Articulo");
       botonCancelarArticulo.setBounds(330,10,150,30);
       p1.add(botonCancelarArticulo);
       botonCancelarArticulo.addActionListener(this);
       
       imagenCantidadAumento=new ImageIcon("cantidadAumento.png");
       botonCantidadAumento=new JButton(imagenCantidadAumento);
       botonCantidadAumento.setIcon(imagenCantidadAumento);
       botonCantidadAumento.setBounds(800,50,16,25);
       p1.add(botonCantidadAumento);
       botonCantidadAumento.addActionListener(this);
       
               imagenCantidadDecremento=new ImageIcon("cantidadDecremento.png");
       botonCantidadDecremento=new JButton(imagenCantidadDecremento);
       botonCantidadDecremento.setIcon(imagenCantidadDecremento);
       botonCantidadDecremento.setBounds(800,75,16,25);
       p1.add(botonCantidadDecremento);
       botonCantidadDecremento.addActionListener(this);
       
       numeroProductos = new JTextField( 30 );
       numeroProductos.setText("1");
       numeroProductos.setBounds(750,50,50,50);
       numeroProductos.setFont(new Font("sansserif", Font.BOLD, 40));      
       p1.add( numeroProductos );
       
       campoTexto1 = new JTextField( 30 );
       campoTexto1.setBounds(250,50,500,50);
       p1.add( campoTexto1 );
       final String asd[]= new String[1];
     
         campoTexto1.setFont(new Font("sansserif", Font.BOLD, 40));
       campoTexto1.addActionListener(this);
       
         
       
       tblEjemplo = new JTable();
       scpEjemplo= new JScrollPane();

       //Llenamos el modelo
       dtmEjemplo = new DefaultTableModel(getFilas(),
                                                            getColumnas());

       tblEjemplo.setModel(dtmEjemplo);
       scpEjemplo.add(tblEjemplo);

     
       
       

      // tblEjemplo.setBounds(20,50,862,170);
      // scpEjemplo.setBounds(20,150,862,170);
       tblEjemplo.getColumnModel().getColumn(0).setResizable(false);
       tblEjemplo.getColumnModel().getColumn(0).setPreferredWidth(50);
       tblEjemplo.getColumnModel().getColumn(1).setResizable(true);
       tblEjemplo.getColumnModel().getColumn(1).setPreferredWidth(21);
       tblEjemplo.getColumnModel().getColumn(2).setResizable(false);
       tblEjemplo.getColumnModel().getColumn(2).setPreferredWidth(282);
       tblEjemplo.getColumnModel().getColumn(3).setResizable(false);
       tblEjemplo.getColumnModel().getColumn(3).setPreferredWidth(40);
       tblEjemplo.getColumnModel().getColumn(4).setResizable(false);
       tblEjemplo.getColumnModel().getColumn(4).setPreferredWidth(0);
        tblEjemplo.setBounds(20,50,862,170);
      scpEjemplo.setBounds(20,150,862,170);
     p1.add(tblEjemplo);
       p1.add(scpEjemplo);
     
       scpEjemplo.setViewportView(tblEjemplo);
     

   
       panelConFichas.setFont(new Font("sansserif", Font.BOLD, 18));
       panelConFichas.addTab("                        Venta 1                         ",
       null, p1, "Venta 1");//Nombre Pestaña, Icono, Agregar Label, Texto ventana
       //termina la primera pestaña le puedo agregar mas cosas pero no tengo tengo ganas ,total es una prueba
     
       
       
       getContentPane().add(panelConFichas);

       campoTexto1.addKeyListener(this);
       
      String as[] = new String[50];
   
     
 String fila[][]=new String[][] {
           {codigos[0], codigos[1], codigos[1], codigos[1], codigos[1]},
           {codigos[1], codigos[1], codigos[1], codigos[1], codigos[1]},
           {codigos[2], codigos[2], codigos[2], codigos[2], codigos[2]},
           {codigos[3], codigos[3], codigos[3], codigos[3], codigos[3]},
           {codigos[4], codigos[4], codigos[4], codigos[4], codigos[4]},
           {codigos[5], codigos[5], codigos[5], codigos[5], codigos[5]},
           {codigos[6], codigos[6], codigos[6], codigos[6], codigos[6]},
           {codigos[7], codigos[7], codigos[7], codigos[7], codigos[7]},
           {codigos[8], codigos[8], codigos[8], codigos[8], codigos[8]},
           {codigos[9], codigos[9], codigos[9], codigos[9], codigos[9]},
           {codigos[10], codigos[10], codigos[10], codigos[10], codigos[10]},
           {codigos[11], codigos[11], codigos[11], codigos[11], codigos[11]},
           {codigos[12], codigos[12], codigos[12], codigos[12], codigos[12]},
           {codigos[13], codigos[13], codigos[13], codigos[13], codigos[13]},
           {codigos[14], codigos[14], codigos[14], codigos[14], codigos[14]},
           {codigos[15], codigos[15], codigos[15], codigos[15],codigos[15]}};
       
 final boolean[] canEdit = new boolean [] {
               false, true, false, false, false
           };
 
 
      tblEjemplo=new JTable(dtmEjemplo){

       public boolean isCellEditable(int rowIndex, int vColIndex) {

          return canEdit [vColIndex];

       }}; //return false: Desabilitar edición de celdas.
 
}
 
   
   
   
   
     
@Override
public void keyTyped(KeyEvent e) {
}

@Override
public void keyPressed(KeyEvent e) {
}

public void keyReleased(KeyEvent e) {
   
 
  // System.out.println("ENTRA AL KEYRELEASE");
   ano = 4;
       ano = Integer.parseInt(numeroProductos.getText());
  // System.out.println(ano);    
variableCodigo = campoTexto1.getText();


int longitud=variableCodigo.length();


if(a<16){
if(longitud == 13){
entroCodigo = true;    
codigos[a]= variableCodigo;
campoTexto1.setText("");

dtmEjemplo = new DefaultTableModel(getFilas(),
                                                            getColumnas());
tblEjemplo.setModel(dtmEjemplo);
scpEjemplo.add(tblEjemplo);
   
       

      // tblEjemplo.setBounds(20,50,862,170);
      // scpEjemplo.setBounds(20,150,862,170);
       tblEjemplo.getColumnModel().getColumn(0).setResizable(false);
       tblEjemplo.getColumnModel().getColumn(0).setPreferredWidth(50);
       tblEjemplo.getColumnModel().getColumn(1).setResizable(false);
       tblEjemplo.getColumnModel().getColumn(1).setPreferredWidth(21);
       tblEjemplo.getColumnModel().getColumn(2).setResizable(false);
       tblEjemplo.getColumnModel().getColumn(2).setPreferredWidth(282);
       tblEjemplo.getColumnModel().getColumn(3).setResizable(false);
       tblEjemplo.getColumnModel().getColumn(3).setPreferredWidth(40);
       tblEjemplo.getColumnModel().getColumn(4).setResizable(false);
       tblEjemplo.getColumnModel().getColumn(4).setPreferredWidth(0);
     //  tblEjemplo.setBounds(20,50,862,170);
      scpEjemplo.setBounds(20,150,862,170);
     p1.add(tblEjemplo);
       p1.add(scpEjemplo);
     
       scpEjemplo.setViewportView(tblEjemplo);
     
       a++;
}  
}
else campoTexto1.setText("MAXIMO DE PRODUCTOS");
}

   
//saca las a wn
private String[][] getFilas()
   {
         
       
     String perro = " ";  
     
     File excelSheet = null;
     Workbook workbook = null;    
           
       try {
            Workbook wb = Workbook.getWorkbook(new File("C:/Users/ZEDGE/Documents/NetBeansProjects/PuntodeVenta/archivoPrueba.xls"));
           // System.out.println(wb.getNumberOfSheets());
               for(int sheetNo=0; sheetNo<wb.getNumberOfSheets();sheetNo++)
               {                
                 Sheet sheet = wb.getSheet(sheetNo);
                 int columns = sheet.getColumns();
                 int rows = sheet.getRows();
                 String data;
                 //System.out.println("Sheet Name\t" +wb.getSheet(sheetNo).getName());
                         for(int row = 0;row < rows;row++) {
                             for(int col = 0;col < columns;col++) {
                              data = sheet.getCell(col, row).getContents();
                             //System.out.println(data);  
                              datos[col][row] = data;
                                          //01 02 03 codigos =D parte del 01                
                       //    System.out.println(as[row]);
                              // System.out.println(datos[col][row] + " " + col + " " + row);
                         }                          
                       //  System.out.println("\n");
                     }
                     }
                 } catch(Exception ioe) {
                      ioe.printStackTrace();
                 }
 i=1;
 j=0;

while(datos[i][j] != null && entroCodigo == true && encontro != 1){
     
    //System.out.println("ENTRO EN EL WHILE 1");
   // System.out.println(codigos[l]);
    //System.out.println(datos[0][i]);
     
    if(codigos[l].equals(datos[0][i])){
       //System.out.println("ENTRO EN EL IF");
       System.out.println(codigos[l]);
       datoEncontrado[k] = String.valueOf(ano);
       k++;
       datoEncontrado[k] = datos[1][i];
       k++;
       datoEncontrado[k] = datos[2][i];
       k++;
       datoEncontrado[k] = String.valueOf(ano *  Integer.parseInt(datos[2][i]));
       k++;
       ano =0;
       encontro=1;
       numeroProductos.setText("1");  
       l++;
       //System.out.println(datoEncontrado[0]);
       //System.out.println(datoEncontrado[1]);
       //System.out.println(datoEncontrado[2]);
       //System.out.println(datoEncontrado[3]);
       }
    else{//System.out.println("ENTRO EN EL ELSE");
        i++;}          
}      
  int m=0;    
//System.out.println("SALIO WHILE IMPORTANTE");

while(m < k){
    encontro =0;
    datoImprimido[m] = datoEncontrado[m];
    m++;
    }              
         String fila[][]=new String[][] {
           {codigos[0], datoImprimido[0], datoImprimido[1], datoEncontrado[2], datoEncontrado[3]},
           {codigos[1], datoImprimido[4], datoImprimido[5], datoImprimido[6], datoImprimido[7]},
           {codigos[2], datoImprimido[8], datoImprimido[9], datoImprimido[10], datoImprimido[11]},
           {codigos[3], datoImprimido[12], datoImprimido[13], datoImprimido[14], datoImprimido[15]},
           {codigos[4], datoImprimido[16], datoImprimido[17], datoImprimido[18], datoImprimido[19]},
           {codigos[5], datoImprimido[20], datoImprimido[21], datoImprimido[22], datoImprimido[23]},
           {codigos[6], datoImprimido[24], datoImprimido[25], datoImprimido[26], datoImprimido[27]},
           {codigos[7], datoImprimido[28], datoImprimido[29], datoImprimido[30], datoImprimido[31]},
           {codigos[8], datoImprimido[32], datoImprimido[33], datoImprimido[34], datoImprimido[35]},
           {codigos[9], datoImprimido[36], datoImprimido[37], datoImprimido[38], datoImprimido[39]},
           {codigos[10], datoImprimido[40], datoImprimido[41], datoImprimido[42], datoImprimido[43]},
           {codigos[11], datoImprimido[44], datoImprimido[45], datoImprimido[46], datoImprimido[47]},
           {codigos[12], datoImprimido[48], datoImprimido[49], datoImprimido[50], datoImprimido[51]},
           {codigos[13], datoImprimido[52], datoImprimido[53], datoImprimido[54], datoImprimido[55]},
           {codigos[14], datoImprimido[56], datoImprimido[57], datoImprimido[58], datoImprimido[59]},
           {codigos[15], datoImprimido[60], datoImprimido[61], datoImprimido[62], datoImprimido[63]}, };
   
 
         return fila;

}
private String[] getColumnas()
   {
         String columna[]=new String[]{"","","", "", ""};
         return columna;
       
   }
     
   

   @Override
   public void actionPerformed(ActionEvent e) {

        if ( e.getSource() == campoTexto1 ){
           codigo = e.getActionCommand();}
       
        if (e.getSource()== botonCantidadAumento) {
             
             numeroProductos.setText("");
             numeroProductos.setText(Integer.toString(estoes));
             numeroProductos.setFont(new Font("sansserif", Font.BOLD, 40));
             estoes++;
       }

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


Leyer

para eliminar datos de una tabla es recomendable que uses DefaultTableModel o AbstractTableModel

ZedGe

Eso mismo averigue ayer y hoy... pero tengo un problema... creo la tabla con DefaultTableModel, pero el JScrollPane no me funciona.. tienes tu algún código de este tipo de tabla con scrollpane?



import java.awt.Color;
import javax.swing.JFrame;
import javax.swing.JScrollPane;


import javax.swing.JTable;

import javax.swing.table.DefaultTableModel;

public class clase extends JFrame {

  DefaultTableModel model = new DefaultTableModel(new Object[][] {
      { "some", "text" }, { "any", "text" }, { "even", "more" },
      { "text", "strings" }, { "and", "other" }, { "text", "values" } },
      new Object[] { "Column 1", "Column 2" });

  JTable table = new JTable(model);
  JScrollPane scrollPane = new JScrollPane(table);


  public clase() {
    super();
   
    setLayout(null);
    table.setBounds(10, 150, 550, 20);
    table.setGridColor(Color.black);
    table.setShowGrid(true);
    getContentPane().add(table);
    getContentPane().add(scrollPane);
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    setSize(500, 500);
    setVisible(true);
  }

  public static void main(String[] args) {
    clase app = new clase();
  }

}


Leyer

si no vas a utilizar ningun layout tienes que especificar la posicion del scrollPane y no del jtable, ya que este se encuentra en el scrollpane, y solo tienes que agregar el scrollpane al contenedor principal mas no el jtable

ZedGe

si en eso me di cuenta anoche pero no tube tiempo de postearlo :P gracias amigo por todo, ire a aplicar lo aprendido aca