quando crio um JPanel com o layout de GridLayout, defino o numeros de linhas e colunas: exemplo de 3x3
se quero adicionar um botao ou caixa de texto neste JPanel porem no centro seria na linha 2 coluna 2, contando da esquerda para direita e de cima pra baixo é a 5ª posicao.
estou tentando fazer este exemplo mas nao consigo, da erro e a excecao de ILlegalArgumentException dizendo que a posicao do indice está incorreta, tentei varios numeros de indice diferente mas nao funciona, e no metodo: JPanel.add(Component comp, int index). no caso do index da esse erro.
alguem saberia como centralizar o componente ou definir em qual posicao do Grid vai ficar?
aí neste caso o painel superior que chamei de painelSpr ele tem 9 posicoes, pq esta como 3x3 no Grid, mas quando executo da erro e aparece a excecao de que o indice da posicao esta incorreto e se alterar a linha
painelSpr.add(txt, 5);
para
painelSpr.add(txt);
ele ira funcionar normalmente porem o txt aparece no topo da janela queria centralizar o txt no North do Border.
dividi o North do Border num Grid de 3x3 e queria centralizar o Component neste Grid...
como faco isso?
alguem poderia ajudar?
T
tebosoftware
Você vai adicionando na sequência, ou seja, da esquerda para direita e de cima para baixo, vai adicionando os componentes e quando for na posição 2x2, ou seja o 5º componente, vc adiciona o painel.
E
Eric_Yuzo
GridLayout não tem suporte a constraints. Este índice que está passando junto com o componente “txt” está dizendo para o container que este deve ser o quinto componente, como há menos de 5 componentes no container, a exceção é lançada.
Aconselho que use o MigLayout para fazer isto.
P
phanpy
disse eu ate faria mas teria que instanciar varias labels em branco pra ir adicionando?
pq no north quero deixar apenas o txt e no meio, criei 4 labels pra fazer este teste e todas com rotulo " "; em branco
aí adicionei 4 labels, depois o txt pra poder deixar no centro… mas ai fico criando label a toa… nao tem como centralizar direto?