Saltar al contenido

Alineación de texto JavaFX TableView

Siéntete en la libertad de compartir nuestra página y códigos en tus redes, necesitamos de tu ayuda para ampliar esta comunidad.

Solución:

Alineación de todas las columnas de la tabla:

A partir de JavaFX-8, puede usar el selector CSS recién definido table-column,

#my-table .table-column 
  -fx-alignment: CENTER-RIGHT;

Para JavaFX-2, para lograr esto, defina un selector de CSS:

#my-table .table-cell 
    -fx-alignment: CENTER-RIGHT;
     /* The rest is from caspian.css */

    -fx-skin: "com.sun.javafx.scene.control.skin.TableCellSkin";
    -fx-padding: 0.166667em; /* 2px, plus border adds 1px */

    -fx-background-color: transparent;
    -fx-border-color: transparent -fx-table-cell-border-color transparent transparent;
    -fx-border-width: 0.083333em; /* 1 */
    -fx-cell-size: 2.0em; /* 24 */
    -fx-text-fill: -fx-text-inner-color;

y establecer la identificación de la vista de tabla.

tableView.setId("my-table");

Alineación de una sola columna de tabla:

A partir de JavaFX-8, puede aplicar el estilo directamente a TableColumn,

firstTextCol.setStyle( "-fx-alignment: CENTER-RIGHT;");

o con css,

firstTextCol.getStyleClass().add( "custom-align");

donde

.custom-align  
  -fx-alignment: center-right; 
 

Para JavaFX-2,
Para aplicar diferentes alineaciones a diferentes columnas, debe configurar la fábrica de celdas para esa columna. Por ejemplo, suponga que la primera columna de su tabla debe estar alineada a la izquierda mientras que otras columnas usan la alineación predeterminada de la tabla (CENTER-RIGHT en tu caso).

firstTextCol.setCellFactory(new Callback() 
            public TableCell call(TableColumn p) 
                TableCell cell = new TableCell() 
                    @Override
                    public void updateItem(String item, boolean empty) 
                        super.updateItem(item, empty);
                        setText(empty ? null : getString());
                        setGraphic(null);
                    

                    private String getString() 
                        return getItem() == null ? "" : getItem().toString();
                    
                ;

                cell.setStyle("-fx-alignment: CENTER-LEFT;");
                return cell;
            
        );

Una solución rápida es seleccionar la columna en SceneBuilder y simplemente agregar la propiedad al campo de estilo.

ingrese la descripción de la imagen aquí

Incluso esto tiene dos años, aquí hay otra respuesta. Para cada columna de la tabla existe una clase de estilo css predeterminada .table-columnpor lo que si desea cambiar las columnas de la tabla completa para justificar el centro a la derecha, solo es necesario poner esto en una hoja de estilo o estilo en línea:

.table-column 
  -fx-alignment: CENTER_RIGHT;

y si tiene una columna que debe estar alineada de otra manera, como un encabezado de fila, no hay problema, adjunte una identificación a esta columna como rowHeading y escriba en su hoja de estilo o estilo en línea:

#rowHeading 
  -fx-alignment: CENTER_LEFT;

y debe quedar centrado. No hay necesidad de una gran codificación.

Puedes añadir valor a nuestra información añadiendo tu experiencia en las referencias.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *