Dúvidas em Swing

7 respostas
marcoantoniorocha

Galera,

Faz um tempo que não trabalho com Swing e vem surgindo umas dúvidas:

:arrow: Tem como deixar um JFrame com tamanho fixo, ou seja, o usuário não pode redimensioná-lo

:arrow: Eu tenho um JPanel com FlowLayout, dentro dele eu tenho um JLabel e JTextField. Gostaria de definir o tamanho que cada componente irá ocupar e o alinhamento para eles. Tem jeito com o FlowLayout ou tem que ser outro LayoutManager?

Obrigado

7 Respostas

ricardolecheta

1 - setResizable(false);

2 - setLayout(null);

component.setBounds(int x,int y,int width,int height)

espero que ajude :smiley:

marcoantoniorocha

Valeu Ricardo.

:arrow: No JFrame está rodando belezinha…

:arrow: Será qeu não tem nenhuma outra solução para o posicionamento dos componentes? Eu não queria usar um LayoutManager null. Em todo caso, obrigado, ainda vou pesquisar mais um pouco. Talvez encontre alguma solução.

Jair_Rillo_Junior

faz um tempo ue eu no mexo com swing tb…

mas caso vc nao queira usar o layout null, tem duas coisas que vc pode fazer que talves serve pra voce…

por exemplo em um JTextField se vc quer aumentar o tamanho dele, vc pode jogar o construtor dele um int que é o tamanho de colunas dele (eu acho que é isso, da uma verificada na API), por exemplo

JTextField texto = new JTextField(15)

sobre alinhamento, da pra vc escolher Left, Right, Center, e mais umas coisinhas como espaçamento entre a borda e acima, no construtor do FlowLayout, algo mais ou menos assim

painel.setLayout(new FlowLayout(FlowLayout.LEFT,2,2));

da um olhada nas APIs que é melhor

espero ter ajudado :slight_smile:

marcoantoniorocha

Quanto às colunas do JTextField beleza...

Na verdade o que eu estou tentando fazer é uma simples tela de cadastro, mais ou menos assim:

------------------------------------
Campo | TextField
------------------------------------
Campo | TextField
------------------------------------
Campo | TextField
------------------------------------

Primeiro eu tenho um GridLayout(3,1). Em cada célula do Grid eu tenho um JPanel. Esse JPanel utiliza o FlowLayout. Cada JPanel tem seu JLabel e JTextField. O "problema" é que ele centraliza os dois componentes e divide o espaço igualmente entre eles.

Fico grato se alguém puder dar uma sugestão... Vou dar uma olhada melhor no FlowLayout.

marcoantoniorocha

Eu desisti… vou montar com o GridBagLayout mesmo…

Jair_Rillo_Junior

ae Marco
eu entendi a sua situação…

e se dentro do JPanel vc colocar o FlowLayout do jeito que eu disse alinhando ele a esquerda nao da certo???

painel.setLayout(new FlowLayout(FlowLayout.LEFT,1,1));

isso pra mim funciona quando eu mexo com swing

M

Existe um gerenciador de Layout chamado GridBagLayout e ele funciona como uma matriz.

(0,0) (1,0) (2,0)
(0,1) (1,1) (2,1)
(0,1) (1,2) (2,2)

imagina que cada posição vc consengue colocar o componente que vc quer.

Certo.

"marcoantoniorocha":
Quanto às colunas do JTextField beleza...

Na verdade o que eu estou tentando fazer é uma simples tela de cadastro, mais ou menos assim:

------------------------------------
Campo | TextField
------------------------------------
Campo | TextField
------------------------------------
Campo | TextField
------------------------------------

Primeiro eu tenho um GridLayout(3,1). Em cada célula do Grid eu tenho um JPanel. Esse JPanel utiliza o FlowLayout. Cada JPanel tem seu JLabel e JTextField. O "problema" é que ele centraliza os dois componentes e divide o espaço igualmente entre eles.

Fico grato se alguém puder dar uma sugestão... Vou dar uma olhada melhor no FlowLayout.

Criado 27 de julho de 2003
Ultima resposta 1 de ago. de 2003
Respostas 7
Participantes 4