Ir ao conteúdo
  • Cadastre-se
AdrianoSiqueira

Java Tamanho da Coluna no JavaFX

Recommended Posts

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á.

Compartilhar este post


Link para o post
Compartilhar em outros sites

@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 

Compartilhar este post


Link para o post
Compartilhar em outros sites

@giu_d, eu faço tudo na mão, puramente programação. O código está incompilável no momento, assim que possível enviarei ele completo e fará mais sentido. Mais uma vez obrigado pela ajuda.

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@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 :)

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

@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");

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

@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

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@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);
}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro 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 publicações 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

×