Ir ao conteúdo

Java Tamanho da Coluna no JavaFX


Ir à solução Resolvido por AdrianoSiqueira,

Posts recomendados

Postado

Olá pessoal, tudo bem?
Estou com dificuldade para acessar o tamanho da TableColumn pelo CSS. Algumas configurações surtem efeito, mas outras não, acredito que estejam sendo sobrescritas em algum lugar. Eu tenho uma classe que cria uma coluna de tabela e estou tentando setar o tamanho mínimo e máximo dessa coluna através do CSS, mas não está dando certo.
Na classe:

private TableColumn<String, String> criarColuna() {
    final TableColumn<String, String> coluna = new TableColumn<>("Coluna");
    coluna.getStyleClass().add("coluna");
    // coluna.setMinWidth(150);    /* Isso funciona */
    // coluna.setMaxWidth(150);    /* Isso funciona */
    return coluna;
}

No CSS:

.coluna {
    -fx-min-width: 150;     /* Isso não funciona */
    -fx-max-width: 150;     /* Isso não funciona */
    -fx-text-fill: red;     /* Isso funciona, mas não para o cabeçalho */
}

Agradeço a ajuda desde já.

Postado

@AdrianoSiqueira Olá, amigo. Já faz mais de um ano q parei d estudar Java para estudar o C, mas nesse tempinho q estudei Java pude aprender muito sobre orientação a objetos e essa parte do Java q gosto muito, projetos com interface gráfica

A questão é a seguinte: Você deve saber q com o JavaFX temos duas formas de trabalhar:

1. Via programação 2. Via arquivo fxml

Está trabalhando via arquivo fxml?

Caso não saiba a diferença entre essas duas opções podemos conversar a respeito disso, pois também estou aqui p aprender 

Postado

@AdrianoSiqueira Cara, não tem interesse em trabalhar via arquivo fxml? É muito mais prático e eficiente, principalmente por separar muito bem a parte ligada a interface gráfica do código que seria a lógica do negócio. Pelo menos o básico eu poderia te passar

obs: Não estou querendo desencorajar você a trabalhar via programação, estou querendo mesmo é mostrar as vantagens que temos trabalhando via arquivo fxml :)

 

 

Postado

@AdrianoSiqueira Olá. Andei brincando com o "visual" do seu app:

.coluna {    
    -fx-text-fill: rgb(255, 0, 0);     /* Funciona, mas não para o cabeçalho */
}

.pane-root {
    -fx-base: darkblue;
    -fx-background: lightblue;
}
.table-view {
    /*-fx-base: #1d1d1d;
    -fx-control-inner-background: #1d1d1d;
    */
    -fx-background-color: #1d1d1d;
    -fx-table-cell-border-color: blue;
    -fx-table-header-border-color: red;
    -fx-padding: 5;
    -fx-min-width: 150;                 
    -fx-max-width: 150;
    -fx-text-fill: red; 
    -fx-font-style: italic; 
    -fx-font-size: 12px;
    -fx-text-fill: red; 
}

.label {	
    -fx-font-style: italic;
    -fx-font-size: 12px;
    -fx-text-fill: red;   /* para o cabeçalho */    
}

Recomendo esse site:

https://code.makery.ch/pt/library/javafx-tutorial/part4/

O que eu fiz acima foi baseado nele 😀

 

É preciso adicionar essa linha no método start:

paneRoot.getStyleClass().add("table-view");

 

Postado

@giu_d, ficou show de bola a interface. Preciso estudar mais a parte de design 😅. Desculpe mas não era bem isso a minha dúvida, a culpa é minha de não me expressar direito. Minha dúvida é como setar a largura mínima e máxima da coluna através do CSS. Eu modifiquei um pouco o projeto e adicionei alguns comentários nos pontos onde estou com essa dúvida.

 

Projeto: 

ProblemaColuna.zip

Postado

@AdrianoSiqueira Me parece que essas duas propriedades q você mencionou não estão surtindo efeito no CSS

Veja esse caso:

.coluna-nome {
    -fx-alignment: center;
    -fx-text-fill: rgb(255, 0, 0);
}

.coluna-idade {
    -fx-alignment: center;
    -fx-text-fill: rgb(255, 0, 0);
}

 

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...