Título: Eliminar Fila De Jtable(Jtabla Sin Model)
Publicado por: ZedGe en 28 Noviembre 2011, 03:49 am
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); } }
Título: Re: Eliminar Fila De Jtable(Jtabla Sin Model)
Publicado por: Leyer en 28 Noviembre 2011, 16:11 pm
para eliminar datos de una tabla es recomendable que uses DefaultTableModel o AbstractTableModel
Título: Re: Eliminar Fila De Jtable(Jtabla Sin Model)
Publicado por: ZedGe en 28 Noviembre 2011, 17:48 pm
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(); }
}
Título: Re: Eliminar Fila De Jtable(Jtabla Sin Model)
Publicado por: Leyer en 29 Noviembre 2011, 04:57 am
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
Título: Re: Eliminar Fila De Jtable(Jtabla Sin Model)
Publicado por: ZedGe en 29 Noviembre 2011, 23:35 pm
si en eso me di cuenta anoche pero no tube tiempo de postearlo :P gracias amigo por todo, ire a aplicar lo aprendido aca
|