GridPane , Nao quero mudar o tamanho de todas as linhas da Coluna

2 respostas
SirDominque

Gente, estou ainda projetando aquele chat.. E agora estou fazendo um sistema de cadastro de usuários pra ele em javaFX.

O Problema é que... Quando eu coloco o Titulo/Label na coluna X, todas as linhas da coluna X levam resize, pois o label é muito grande.

Eu tinha usado esse código pra nao deixar isso acontecer , mas da erro;
//
Copiando meu psot da Oracle.
I dont want that all Columns Resize because of the First line of that Column is too Big!!!!

This line of Code was suppose to fix that i guess...
But it isnt :

gp.getColumnConstraints().get(4).fillWidthProperty().setValue(false);

Heres the Whole Class:

package View;
import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.control.ComboBox;
import javafx.scene.control.Label;
import javafx.scene.control.PasswordField;
import javafx.scene.control.TextField;
import javafx.scene.control.Tooltip;
import javafx.scene.layout.GridPane;
import javafx.scene.paint.Color;
import javafx.scene.text.Font;
import javafx.scene.text.Text;
import javafx.stage.Stage;
 
/**
 *
 * @author André
 */
public class CadastrarChatUsers extends Application {
    
    @Override
    public void start(Stage primaryStage) {
        Group root = new Group();
        Scene scene = new Scene(root, 300, 250);
        scene.setFill(Color.CADETBLUE);
        primaryStage.setTitle("Cadastro de Usuários");
        
        //Cria o Layout
        GridPane gp = new GridPane();
        gp.setHgap(2);
        gp.setVgap(2);
        //Cria os Componentes:
        Text titleText = new Text("Cadastrar Usuários Do Chat");
        titleText.setFont(new Font("Verdana",18));
        titleText.setFill(Color.rgb(0,0,0));
        
        //Campo E-mail
        TextField emailTextField = new TextField();
        Label labelEmail = new Label("E-Mail");
        Tooltip toolTipEmail = new Tooltip("Insira um e-mail Válido");
        emailTextField.setTooltip(toolTipEmail);
        
        //Campo Password
        TextField passwordTextField = new PasswordField();
        Label labelPassword = new Label("Password");
        Tooltip toolTipPassword = new Tooltip("Insira uma senha Válida");
        passwordTextField.setTooltip(toolTipEmail);
        
        //Campo Nivel Usuario
        ComboBox<String> nivelUsuarioComboBox = new ComboBox();
        nivelUsuarioComboBox.getItems().addAll("Admin","Moderador","Publico","Banido");
        Label labelNivelUsuario = new Label("Nivel De Uso");
        Tooltip toolTipNivelUsuario = new Tooltip("Selecione O Nivel de Poder");
        nivelUsuarioComboBox.setTooltip(toolTipNivelUsuario);
        
        //
        
        
        
        gp.add(titleText,4,2);
        
        gp.add(emailTextField,3,5);
        gp.add(labelEmail,4,5);
        
        gp.add(passwordTextField,3,8);
        gp.add(labelPassword,4,8);
        
        gp.add(nivelUsuarioComboBox,3,11);
        gp.add(labelNivelUsuario,4,11);
        //
        root.getChildren().add(gp);
        
        primaryStage.setScene(scene);
        primaryStage.show();
        gp.getColumnConstraints().get(4).fillWidthProperty().setValue(false);
    }
 
    /**
     * The main() method is ignored in correctly deployed JavaFX application.
     * main() serves only as fallback in case the application can not be
     * launched through deployment artifacts, e.g., in IDEs with limited FX
     * support. NetBeans ignores main().
     *
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        launch(args);
    }
}

O erro quando uso aquele método:

ant -f "D: Arquivos E Programas\\MeusProjetosJava CadastrarChatUsers" jfxsa-run init: Deleting: D:\Arquivos E Programas\MeusProjetosJava\CadastrarChatUsers\build\built-jar.properties deps-jar: Updating property file: D:\Arquivos E Programas\MeusProjetosJava\CadastrarChatUsers\build\built-jar.properties Deleted 1 out of date files in 0 seconds Compiling 1 source file to D:\Arquivos E Programas\MeusProjetosJava\CadastrarChatUsers\build\classes compile: Detected JavaFX Ant API version 1.2 Launching task from D:\Arquivos E Programas\NetBeans_JavaSE_7.2.1_Portable\App\jdk\lib\ant-javafx.jar Launching task from D:\Arquivos E Programas\NetBeans_JavaSE_7.2.1_Portable\App\jdk\lib\ant-javafx.jar jfx-deployment: jar: run: Exception in Application start method java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at com.javafx.main.Main.launchApp(Main.java:642) at com.javafx.main.Main.main(Main.java:805) Caused by: java.lang.RuntimeException: Exception in Application start method at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:403) at com.sun.javafx.application.LauncherImpl.access$000(LauncherImpl.java:47) at com.sun.javafx.application.LauncherImpl$1.run(LauncherImpl.java:115) at java.lang.Thread.run(Thread.java:722) Caused by: java.lang.IndexOutOfBoundsException: Index: 4, Size: 0 at java.util.ArrayList.rangeCheck(ArrayList.java:604) at java.util.ArrayList.get(ArrayList.java:382) at com.sun.javafx.collections.ObservableListWrapper.get(ObservableListWrapper.java:208) at View.CadastrarChatUsers.start(CadastrarChatUsers.java:77) at com.sun.javafx.application.LauncherImpl$5.run(LauncherImpl.java:319) at com.sun.javafx.application.PlatformImpl$5.run(PlatformImpl.java:206) at com.sun.javafx.application.PlatformImpl$4.run(PlatformImpl.java:173) at com.sun.glass.ui.win.WinApplication._runLoop(Native Method) at com.sun.glass.ui.win.WinApplication.access$100(WinApplication.java:29) at com.sun.glass.ui.win.WinApplication$3$1.run(WinApplication.java:73) ... 1 more Java Result: 1 jfxsa-run: CONSTRUÍDO COM SUCESSO (tempo total: 8 segundos)

2 Respostas

SirDominque

Gente, olha a imagem, talvez fiquem mais fácil pra voces me darem uma dica.
Caso nao souberem em javafx, como fariam em java ?

http://imageshack.us/photo/my-images/705/columnfixlarguramx1024a.png/

SirDominque

Ok Gente, eu Resolvi.

Coloquei um GridPane naquela coluna/linha aonde esta o botao cadastrar.
E coloquei o botao e o label dentro dele.

Criado 1 de fevereiro de 2013
Ultima resposta 3 de fev. de 2013
Respostas 2
Participantes 1