1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Como controlar tamanho da linha com Java(fx)?

Pessoal, estou montando um projeto para a faculdade, estou usando o javafx no eclipse. Montei a seguinte tela com o scene builder:

<?xml version="1.0" encoding="UTF-8"?>

<?import javafx.scene.control.Button?>
<?import javafx.scene.control.ComboBox?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.control.TableColumn?>
<?import javafx.scene.control.TableView?>
<?import javafx.scene.control.TextField?>
<?import javafx.scene.layout.AnchorPane?>
<?import javafx.scene.text.Font?>

<AnchorPane prefHeight="556.0" prefWidth="685.0" xmlns="http://javafx.com/javafx/8.0.60" xmlns:fx="http://javafx.com/fxml/1" fx:controller="controller.UsuarioController">
   <children>
      <AnchorPane layoutX="3.0" prefHeight="556.0" prefWidth="685.0" />
      <TableView fx:id="listaTbView" fixedCellSize="1.0" layoutX="32.0" layoutY="94.0" minHeight="355.0" minWidth="80.0" prefHeight="355.0" prefWidth="413.0" />
      <Button fx:id="historicoBtn" layoutX="500.0" layoutY="15.0" mnemonicParsing="false" prefHeight="34.0" prefWidth="116.0" text="Histórico" />
      <Button fx:id="verNotificacoesBtn" layoutX="478.0" layoutY="411.0" mnemonicParsing="false" prefHeight="34.0" prefWidth="160.0" text="Ver todas notificações" />
      <Button fx:id="gerarNovoPedidoBtn" layoutX="500.0" layoutY="61.0" mnemonicParsing="false" prefHeight="34.0" prefWidth="116.0" text="Gerar novo Pedido" />
      <Button fx:id="atualizarBtn" layoutX="35.0" layoutY="459.0" mnemonicParsing="false" onAction="#Atualizar" text="Atualizar" />
      <Label layoutX="34.0" layoutY="15.0" text="Olá! Seja bem vindo," />
      <Label fx:id="usuarioLbl" layoutX="179.0" layoutY="15.0" text="Usuario" />
      <Label layoutX="30.0" layoutY="64.0" prefHeight="27.0" prefWidth="174.0" text="Pedidos Pendentes">
         <font>
            <Font name="System Bold" size="18.0" />
         </font>
      </Label>
      <TextField fx:id="buscarTxtField" layoutX="35.0" layoutY="494.0" prefHeight="25.0" prefWidth="204.0" />
      <Button fx:id="buscarBtn" layoutX="382.0" layoutY="494.0" mnemonicParsing="false" prefHeight="25.0" prefWidth="63.0" text="Buscar" />
      <TableView fx:id="notificacoesTbV" layoutX="478.0" layoutY="111.0" prefHeight="289.0" prefWidth="160.0">
        <columns>
          <TableColumn fx:id="notificacoesTbColumn" prefWidth="159.0" text="Notificações" />
        </columns>
      </TableView>
      <ComboBox fx:id="tipoPesquisaCbB" layoutX="253.0" layoutY="494.0" prefHeight="25.0" prefWidth="116.0" />
   </children>
</AnchorPane>

O controller do FXML é o seguinte:

package controller;

import java.util.Arrays;
import java.util.List;

import javafx.collections.FXCollections;
import javafx.fxml.FXML;
import javafx.scene.control.Button;
import javafx.scene.control.ComboBox;
import javafx.scene.control.Label;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import javafx.scene.control.TextField;
import javafx.scene.control.cell.PropertyValueFactory;
import model.Notification;
import model.Order;
import model.Provider;
import model.State;
import model.TelaUsuario;
import util.ItensEstaticos;

public class UsuarioController {

    @FXML
    TableView<TelaUsuario> listaTbView;

    @FXML
    TableColumn<TelaUsuario, String> pedidoTbCol;

    @FXML
    TableColumn<TelaUsuario, String> statusTbCol;

    @FXML
    TableColumn<TelaUsuario, String> fornecedorTbCol;

    @FXML
    TableColumn<TelaUsuario, Button> botaoTbCol;

    @FXML
    Button historicoBtn;

    @FXML
    Button verNotificacoesBtn;

    @FXML
    Button gerarNovoPedidoBtn;

    @FXML
    Button atualizarBtn;

    @FXML
    Label usuarioLbl;

    @FXML
    TextField buscarTxtField;

    @FXML
    Button buscarBtn;

    @FXML
    TableView<Notification> notificacoesTbV;

    @FXML
    TableColumn<Notification, String> notificacoesTbColumn;

    @FXML
    ComboBox<String> tipoPesquisaCbB;

    private List itens = Arrays.asList(
            new TelaUsuario(null,null,null),
            new TelaUsuario("1234", "Em deslocamento", "Loja do Zé"),
            new TelaUsuario("1235", "Em deslocamento", "Nacional")
            );
    public void Atualizar() {
        //this.usuarioLbl.setText(ItensEstaticos.getLogin().getLGN_USERNAME());
        this.usuarioLbl.setText("joao");
        /*
         *      String pedido, status, fornecedor;
         *     Button btn;
         * 
         */

        pedidoTbCol.setCellValueFactory(new PropertyValueFactory<TelaUsuario, String>("pedido"));

        statusTbCol.setCellValueFactory(new PropertyValueFactory<TelaUsuario, String>("status"));

        fornecedorTbCol.setCellValueFactory(new PropertyValueFactory<TelaUsuario, String>("fornecedor"));

        botaoTbCol.setCellValueFactory(new PropertyValueFactory<TelaUsuario, Button>("btn"));

        this.listaTbView.autosize();

        this.listaTbView.setItems(FXCollections.observableArrayList(itens));
        //this.listaTbView.getColumns().addAll(pedidoTbCol, statusTbCol, fornecedorTbCol, botaoTbCol);

    }
}

Os itens de preenchimento da tela estão fixos, mas são retornados de um banco via JPA/Hibernate. A view é aberta por uma application, ...

package application;

import java.io.IOException;

import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Scene;
import javafx.scene.layout.Pane;
import javafx.stage.Stage;
import util.ItensEstaticos;

public class UsuarioView extends Application {

    @Override
    public void start(Stage primaryStage) throws IOException {
        primaryStage.setTitle("Usuario");
        Pane myPane = (Pane)FXMLLoader.load(getClass().getResource("Usuario.fxml"));
        Scene myScene = new Scene(myPane);
        primaryStage.setScene(myScene);
        ItensEstaticos.setStageUsuario(primaryStage);
//        ItensEstaticos.getStageLogin().close();
        primaryStage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }

}

O grande problema é que, populando os elementos na table view, parece que todos ficam na mesma linha, um em cima do outro, ou ficam embaixo do cabeçalho da tabela...

https://www.filepicker.io/api/file/vseuZxiyRguEfLp4RDZ5

alguma sugestão de alteração? Como posso colocar esse tamanho na linha ou inserir itens que não se sobreponham?

  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

0 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags java javafx ou faça a sua própria pergunta.