Java Personalizar un JTable 1/2

แชร์
ฝัง
  • เผยแพร่เมื่อ 4 ธ.ค. 2024

ความคิดเห็น • 45

  • @ironman666g
    @ironman666g 7 ปีที่แล้ว +1

    muy bueno amigo pero tengo una pregunta , despues de que haces eso se deja de ver el selection mode , osea ya no se pinta de azul toda la fila que estas seleccionando con el cursor, hay alguna forma de que se pueda ver de nuevo?
    saludos!

    • @DavidTiconaSaravia
      @DavidTiconaSaravia  7 ปีที่แล้ว +1

      Hola Aldo. Buena tu pregunta, se me fue ese detalle al hacer el vídeo. Pasa que al hacer un override sobre el método prepareRenderer en la clase DTable, todo el proceso de "pintado" de celdas fue reemplazado.
      Haz lo siguiente: Luego de las primeras 3 lineas de prepareRenderer incluye este código:
      if (isRowSelected(rowIndex)){
      component.setBackground(this.getSelectionBackground());
      component.setForeground(this.getSelectionForeground());
      }
      Bienvenido al canal.

    • @ironman666g
      @ironman666g 7 ปีที่แล้ว

      hey! funciono correctamente! gracias amigo por responder
      saludos desde mx

  • @kurigohankamehameha3009
    @kurigohankamehameha3009 8 ปีที่แล้ว +1

    Muy buen tutorial, mi estimado. Me suscribo y ojalá se suscriban más personas a su canal, porque se lo merece.
    Me gustaría que en algún momento haga unos tutoriales extras sobre la JTable, como el insertar botones en las celdas y que activen algo al darles click.

    • @DavidTiconaSaravia
      @DavidTiconaSaravia  8 ปีที่แล้ว +2

      Muchas gracias por suscribirse!!!. .
      Si, estoy recibiendo bastantes sugerencias sobre el mismo tema. Vendran mas videos que incluyan lo principal de todo en ejemplos prácticos.
      Que tenga un buen dia.

  • @eddymartinmoralesfajardo1767
    @eddymartinmoralesfajardo1767 ปีที่แล้ว

    Excelente video gracias

  • @Sr.Salinas
    @Sr.Salinas 6 ปีที่แล้ว

    Hola me gustó tu explicación, muy practica y fácil de entender. ¿Podrías hacer un videotutorial de como renderizar la tabla para poder cambiar las propiedades del encabezado como el color de fondo o el color, tipo y tamaño de letra?.

  • @rosendotinoco7014
    @rosendotinoco7014 7 ปีที่แล้ว

    Perfecto, un gustazo de video, muchas gracias por el esfuerzo

  • @john_ingsystemsPE97
    @john_ingsystemsPE97 8 ปีที่แล้ว

    Excelente vídeo amigo justamente esto estaba realizando en un ejercicio y no me salían algunas cosas...

    • @DavidTiconaSaravia
      @DavidTiconaSaravia  8 ปีที่แล้ว

      Gracias por el comentario, y que bueno saber que está siendo de ayuda.

  • @carlollos2635
    @carlollos2635 5 ปีที่แล้ว +1

    Es un dios! Gracias

  • @pinkarrowftw
    @pinkarrowftw 7 ปีที่แล้ว

    Excelente vídeo muy claro me sirvió mucho. Muchisimas gracias

  • @fernandoanaya9915
    @fernandoanaya9915 6 ปีที่แล้ว

    Amigo, me sale perfecto el cambio de colores.
    El problema es que al mostrar los datos de una tabla mysql, los colores de la tabla no cambian, pero si lo hago sin conexión (introduciendo manualmente los datos) si funciona, ¿podrías ayudarme con esto?

  • @RavlDelacruz
    @RavlDelacruz 7 ปีที่แล้ว

    de una tabla de este tipo puedo, utilizar los datos para generar registros aleatorios en una base de datos?

    • @DavidTiconaSaravia
      @DavidTiconaSaravia  7 ปีที่แล้ว

      Si, puedes.
      JTable tiene funciones para obtener los datos de sus celdas. Al obtener sus datos podemos almacenar estos en base de datos (o en algún otro medio). Para esos casos se tiene que implementar métodos y funciones de acceso a base de datos.

  • @soydelolimpia4230
    @soydelolimpia4230 4 ปีที่แล้ว

    Muy bueno!!!! GRACIAS

  • @NegusProMax
    @NegusProMax 3 ปีที่แล้ว

    hey how to have multiple lines inside the table cell?

  • @Williamscafdev
    @Williamscafdev 8 ปีที่แล้ว

    Disculpe una consulta me sale perfecto el código pero quisiera saber, en donde debo cambiar para que en vez que solo una celda se cambie color sea mejor que toda la fila se cambie?

    • @DavidTiconaSaravia
      @DavidTiconaSaravia  8 ปีที่แล้ว

      Hola y gracias por compartir tus dudas. En el video en min. 08:03 tendrias que reemplazar las condiciones que explico. Reemplazar por esto:
      if ((getValueAt(rowIndex, 1)!=null)){
      float val = Float.parseFloat(getValueAt(rowIndex, 1).toString());
      if (val

    • @Williamscafdev
      @Williamscafdev 8 ปีที่แล้ว +1

      Muchas gracias por tu ayuda, pude solucionarlo antes de tu respuesta. pero me vale para otras situaciones. :D

    • @Xpainkiller888
      @Xpainkiller888 6 ปีที่แล้ว

      @@Williamscafdev podrias compartir dicha respuestA?

  • @donclamm.t.1038
    @donclamm.t.1038 5 ปีที่แล้ว

    tal vez no tenga mucho que ver con el tema del video, pero quiero saber porque no puedo utilizar el addRow... Necesito alguna librería determinada o que pasa?? estuve investigando en foros pero no encontre nada

  • @jaikfeik7573
    @jaikfeik7573 7 ปีที่แล้ว

    Se puede hacer lo mismo con RadioButtons ?

    • @DavidTiconaSaravia
      @DavidTiconaSaravia  7 ปีที่แล้ว

      Hola Jaik. Para valores booleanos el componente mas apropiado es el Checkbox y está definido dentro del propio JTable. Para implementar radio buttons se necesita codificar mas, pero dependiendo del caso puede ser mas fácil implementar combobox.
      Te invito a inscribirte al canal para impulsar la creación de mas tutoriales.

  • @drancence
    @drancence 7 ปีที่แล้ว

    Muy interesante el tutorial. ¿Cómo puedo que el formato de la celda persista cuando el campo es booleano? Cuando pierde el foco el formato sale.

    • @DavidTiconaSaravia
      @DavidTiconaSaravia  7 ปีที่แล้ว

      hola Adailton. Disculpa el atraso en responder.
      Respecto a tu pregunta: Si te refieres a cambiar el color de celda dependiendo de una columna de tipo boolean, he visto que eso ocurre solo con la apariencia "Nimbus", con todas las otras (Metal, Windows, Motif) funciona perfectamente.
      Para cambiar la apariencia busca en el código del formulário esta línea:
      if ("Nimbus".equals(info.getName())) {
      Y cambiala por "Metal" o "Windows":
      if ("Metal".equals(info.getName())) {
      Éxitos.

  • @rodrigog8969
    @rodrigog8969 2 ปีที่แล้ว

    tengo una tabla que tiene muchas columnas del mismo tipo, pero solo quiero modificar el color a una de estas columnas, sin modificar las otras. ¿alguien sabe como seria?

  • @chrysthianmoizes9829
    @chrysthianmoizes9829 6 ปีที่แล้ว

    Amigo, tengo un problema un poco diferente. No quiero que el color de la línea cambie cuando inserto un valor en ella, quiero que después de llenar la tabla, pueda barrer todas sus celdas y aplicar un color diferente a cada una de ellas dependiendo de alguna verificación que hice. ¿Sabría cómo ayudarme?

    • @DavidTiconaSaravia
      @DavidTiconaSaravia  6 ปีที่แล้ว

      Hola Chrysthian. Lo que se me viene a la mente es que:
      1) tendrías que crear una propiedad boolean checkValues en la clase DTable (explicado en el video). Esta propiedad va iniciar en false.
      2) Crear un método que altere ese valor:
      public void setCheckValues(boolean checkValues) {
      this.checkValues = checkValues;
      }
      3) Llamar a ese método mediante un botón.
      Ya en el método se verifica si el valor de checkValues es true. Solo si el valor es true verificar que los valores de las celdas cumplan las condicionantes necesarias.
      Éxitos.

  • @fernandoblanco8915
    @fernandoblanco8915 6 ปีที่แล้ว

    Muchas gracias!

  • @alexgonzales802
    @alexgonzales802 7 ปีที่แล้ว

    como defino el ancho de las columnas.... solo se ajustan al tamaño del titulo de la columna.... pero quiero definir un tamaño mayor al titulo de la columna

    • @DavidTiconaSaravia
      @DavidTiconaSaravia  7 ปีที่แล้ว

      Hola Alex. El ancho de las columnas puedes definirlo desde el editor de netbeans. Click derecho->Table contents->Columns. En cada columna tendrás el campo "Pref. Width", que será donde definas el ancho de esa columna. Tambien puedes definir el ancho mínimo y máximo.

  • @joseluis912
    @joseluis912 4 ปีที่แล้ว +1

    No me funcionó, no me dejó hacer lo ultimo que es cambiar el JTable por el DTable

    • @angelpaz3054
      @angelpaz3054 3 ปีที่แล้ว

      igual no me funciono :(

  • @renecarbajal9137
    @renecarbajal9137 7 ปีที่แล้ว

    Hola muy buen video pero tengo una pregunta.
    Tengo el siguiente codigo y lo que quiero saber es de donde obtiene el valor "int column"
    ya que quiero que evalue la columna 5 pero tiene asignado la columna 2.
    Esta es la clase:
    public class ColorCelda extends DefaultTableCellRenderer {
    private JLabel componente;

    @Override
    public Component getTableCellRendererComponent(JTable jtable, Object value, boolean isSelected , boolean hasFocus, int row, int column) {
    componente= (JLabel)super.getTableCellRendererComponent(jtable, value, isSelected, hasFocus, row, column);
    if(column==5){
    int valor=(int)value;
    // String valor=(String)value;
    if(valor!=0){
    componente.setBackground(Color.LIGHT_GRAY);
    componente.setForeground(Color.WHITE);
    }
    }
    return componente;
    }
    la manera como la llamo es la siguiente:
    Tabdetalleped.setDefaultRenderer(Integer.class, new ColorCelda());
    Gracias por tu ayuda.

    • @DavidTiconaSaravia
      @DavidTiconaSaravia  7 ปีที่แล้ว

      Hola Adalberto, bienvenido al canal. Respecto a tu pregunta: depende del método que utilices. En tu caso estas usando getTableCellRendererComponent, este método es usado para configurar el renderizador de celdas antes del pintado de cada celda (el pintado de componentes es ejecutado a cualquier momento de forma automática). Me parece que a tu codigo le falta un ELSE o algo que coloque los colores por default.

  • @carlosrisch954
    @carlosrisch954 7 ปีที่แล้ว

    Necesito que los campos seleccionados con checkbox se guarden en una tabla de una base de datos, como hacerlo, alguien que me pueda ayudar??

    • @DavidTiconaSaravia
      @DavidTiconaSaravia  7 ปีที่แล้ว

      Hola Carlos. Para recorrer un JTable puedes usar un for y verificar si el valor de esa columna es TRUE. Por ejemplo:
      int totalRows = tblDatos.getRowCount();
      for (int row=0; row < totalRows; row++) {
      Boolean isChecked = (Boolean) tblDatos.getValueAt(i, 2); //2 es el indice de la columna que se va verificar
      if (isChecked) {
      // Ejecutas aqui el método para guardar los datos de esta fila
      }
      }
      Esa es la idea.
      Te invito a inscribirte al canal para impulsar la creación de mas videos.

  • @Carlos-fl1zc
    @Carlos-fl1zc 6 ปีที่แล้ว

    Link del proyecto para que el público de youtube lo estudie

  • @SCVprogramadorelectronico7643
    @SCVprogramadorelectronico7643 ปีที่แล้ว

    Me puedes hacer un trabajo? 😊🤗

  • @annisa3295
    @annisa3295 6 ปีที่แล้ว

    Can you give english subtitle?

    • @DavidTiconaSaravia
      @DavidTiconaSaravia  6 ปีที่แล้ว +1

      Hi Annisa and welcome to my channel.
      In the future I will do it. Meanwhile, please activate the automatic subtitles. Some words are not translated correctly but I think it is understood. I just checked.
      Have a nice day.

    • @annisa3295
      @annisa3295 6 ปีที่แล้ว

      David Ticona Saravia but, i check now it still transalte in spanyol 😢😢

    • @DavidTiconaSaravia
      @DavidTiconaSaravia  6 ปีที่แล้ว

      Annisa
      Click the settings icon(Gear icon) at the bottom of the video screen >> Subtitles/CC >> Auto-translate >> English