Java - Duda decrementar filas en un Jtable

 
Vista:
sin imagen de perfil
Val: 106
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Duda decrementar filas en un Jtable

Publicado por Hector (63 intervenciones) el 05/04/2019 01:18:14
Hola amigos del foro, he aquí nuevamente con esta duda, soy nuevo en esto de java, he investigado todo sobre las filas de un jtable y todos hablan de sumar mas 1, pero se puede decrementar -1 una fila al momento de eliminarla, les muestro el código que utilizo para dicha acción.
private void jMenuItem2ActionPerformed(java.awt.event.ActionEvent evt) {
int fila = tblDatos.getSelectedRow();
String cod = "";
cod = tblDatos.getValueAt(fila, 1).toString();
try {
PreparedStatement pst = cn.prepareStatement("Delete From presupuesto1 WHERE N_Filas='" + cod + "'");
pst.executeUpdate();

mostrardatos(txtpatente.getText());
contar();
} catch (Exception e) {

}
}
y saben por que se los digo que al ingresar 3 filas y las almacena en su respectiva tabla y al modificarla las realiza muy bien, pero al momento de eliminar se presente un problema, por ejemplo de las 3 filas que tengo al elimina la fila nº 2, por ende la fila que posee el Nº 3 debe quedar con el Nº 2 y no lo hace, favor de ayudarme en esta situación, en asp.net lo hacia bien y no me presentaba problema, no se di se podrá en este Jtable, se me ocurre utilizar un for pero no se como aplicarlo, para que mentir, desde ya muchas gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Rodrigo
Val: 2.041
Plata
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Duda decrementar filas en un Jtable

Publicado por Rodrigo (623 intervenciones) el 05/04/2019 12:26:38
Asumo que la tabla presupuesto tiene la columna N_Filas por el DELETE en sql que tienes alli,
Las columnas, unas vez creadas, no deberian recalcularse solo porque borraste algo en la mitad, por lo que si borraste el registro que tenia el valor 2 en la columna N_Filas, todos los otros quedaran alli con sus respectivos valores.

Distinto es en el momento de la creacion, en que el motor puede mantener cual fue el ultimo registro que uso y auto incrementarlo cada vez que haya un nuevo registro.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 106
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Duda decrementar filas en un Jtable

Publicado por Hector (63 intervenciones) el 05/04/2019 21:44:50
Rodrigo muy agradecido por tu comentario, es decir no se pueden restar las filas en lenguaje java, pero si en otros lenguajes de programación, como en visual studio a través de asp.net, debe haber un modo de que las filas se puedan decremantar en -1, ya que se pueden realizar operaciones matemáticas dentro del Jtable de acuerdo a lo investigado por mi, ya que como dije anteriormente soy nuevo en este lenguaje de programación, voy a adjuntar el código que utilizo en asp.net para restar las filas, la cual funciona sin ningún problema, a ver si me ayudar con este problema y en si va a servir para todos.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Sub borrar_item(ByVal indice As Integer)
    ds = Session("tabla")
    Dim indice_borrado As Integer
    For i = 0 To ds.Tables("Grilla").Rows.Count - 1
        If Not ds.Tables("Grilla").Rows(i).RowState = DataRowState.Deleted Then
            If CInt(ds.Tables("Grilla").Rows(i).Item("N_Filas")) = indice + 1 Then
                ds.Tables("Grilla").Rows(i).Delete()
                indice_borrado = i
            ElseIf CInt(ds.Tables("Grilla").Rows(i).Item("N_Filas")) >= indice + 1 Then
                ds.Tables("Grilla").Rows(i).Item("N_Filas") = CInt(ds.Tables("Grilla").Rows(i).Item("N_Filas")) - 1
            End If
        End If
    Next
    Dim builder As Data.SqlClient.SqlCommandBuilder = New SqlClient.SqlCommandBuilder(da)
    Dim vista As DataView = New DataView(ds.Tables("Grilla"), " ", "N_Filas asc", DataViewRowState.CurrentRows)
    Grilla.DataSource = vista
    Grilla.DataBind()
    Me.ds.Tables("Grilla").AcceptChanges()
    Session.Add("tabla", ds)
    CMDMODIFICAR.Enabled = True
    contador_items.Text = CInt(contador_items.Text) - 1
    TXTITEM.Text = contador_items.Text
    CheckBox1.Focus()
End Sub
esa es la idea más menos que quiero llevar a cabo en el programa que estoy haciendo, ojala que me puedan ayudar ya que estoy desde el martes parado en esto, desde ya muchas gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Rodrigo
Val: 2.041
Plata
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Duda decrementar filas en un Jtable

Publicado por Rodrigo (623 intervenciones) el 05/04/2019 23:19:35
Antes de considerar lo que escribes, una sugerencia:
SI al escribir aqui encierras el texto entre unos tags, el codigo aparece con colores, mas faciles de leer, indentado, etc..
Selecciona el codigo y presiona el boton que aparece arriba del texto con este icono </>

El codigo queda asi:

1
2
3
for(int i = 0; i < 10: i++) {
    print("hola");
}
En vez de asi:

1
2
3
for(int i = 0; i < 10: i++ ) {
    print("hola");
}

Tal como esta, tu post no invita a leerlo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Rodrigo
Val: 2.041
Plata
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Duda decrementar filas en un Jtable

Publicado por Rodrigo (623 intervenciones) el 07/04/2019 15:35:34
Solo comento basado en los codigos que muestras, no tengo idea realmente como resolver lo que quieres.
Posiblemente los comentarios te ayuden. Espero que sea asi.

Segun lo que veo, el codigo en Java que muestras mas arriba borra 1 fila y listo. Nada mas.
El codigo en asp.net que muestras no solo borra 1 fila, tambien corrige el resto de las filas. Hay un ciclo ahi y hay correccion de la columna N_filas (ver linea 10).

Has concluido, basado en mi comentario anterior que en Java no funciona lo mismo que en asp.net, pero no has considerado que estas haciendo menos operaciones en los datos en un lado que en otro.

Mi opinion es que no va a funcionar en ningun lado en que no corrijas explicitamente tal como lo estas haciendo en asp.net.

Tal vez la seccion "Updating Rows in ResultSet Objects" en esta pagina sirve?
https://docs.oracle.com/javase/tutorial/jdbc/basics/retrieving.html
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar