Setando a posição dos componentes!

7 respostas
Pilantra

Boa noite

Tem como setar as posições x e y dos componentes como Button, TextField, etc?! Usando um FlowLayout() eu creio pois sem layout o componente se estica no Frame!!

Obrigado

Pilantra 8)

7 Respostas

rigolin

Com FlowLayout acho que não dá… tente GridBagLayout.

Leia isso aqui:
http://www.javaalmanac.com/egs/java.awt/gridbag_Using.html

Pilantra

Rapaz, eu to aqui me matando pra aprender esse gridbaglayout!!! Ele é meio diferente em relação aos outros, não consigo criar vários JPanel e botar eles em cada canto do Frame, como eu sempre fiz no GridLayout!!!

rigolin

Este exemplo está mastigado e ilustrado:

http://java.sun.com/docs/books/tutorial/uiswing/layout/gridbag.html

Pilantra

é por esse exemplo que estou fazendo!!

Consegui monstar uma coisa aqui!!! Mas tá estranho, eu setei pra um botão ocupar 2 celulas e não ocupa!! Veja:

import javax.swing.*;
import java.awt.*;

public class GridBagLayoutTest extends JFrame {

   public static void main(String[] args)
   {
       new GridBagLayoutTest();

   }

   public GridBagLayoutTest() {

	setVisible(true);
	setSize(300,300);
	setLocation(250,100);

	GridBagLayout layout = new GridBagLayout();
	GridBagConstraints c = new GridBagConstraints();
	JPanel pLeft = new JPanel();
	
	pLeft.setLayout(layout);

   JButton botão1 = new JButton("1");
   JButton botão2 = new JButton("2");
   JButton botão3 = new JButton("3");
   JButton botão4 = new JButton("4");
   JButton botão5 = new JButton("5");
   JButton botão6 = new JButton("6");
   JButton botão7 = new JButton("7");
   JButton botão8 = new JButton("8");
   JButton botão9 = new JButton("9");
   JButton botão10 = new JButton("X");

   c.gridy = 0;
   c.gridx = 0;
   c.gridwidth = 2;
   c.fill = GridBagConstraints.HORIZONTAL;
   layout.setConstraints(botão1,c);
   pLeft.add(botão1);

   c.gridy = 1;
   c.gridx = 0;
   layout.setConstraints(botão2,c);
   pLeft.add(botão2);

   c.gridy = 2;
   c.gridx = 0;
   layout.setConstraints(botão3,c);
   pLeft.add(botão3);

   c.gridy = 3;
   c.gridx = 0;
   layout.setConstraints(botão4,c);
   pLeft.add(botão4);

   c.gridy = 4;
   c.gridx = 0;
   layout.setConstraints(botão5,c);
   pLeft.add(botão5);

   c.gridy = 0;
   c.gridx = 3;
   layout.setConstraints(botão6,c);
   pLeft.add(botão6);

   c.gridy = 1;
   c.gridx = 3;
   layout.setConstraints(botão7,c);
   pLeft.add(botão7);

   c.gridy = 2;
   c.gridx = 3;
   layout.setConstraints(botão8,c);
   pLeft.add(botão8);

   c.gridy = 3;
   c.gridx = 3;
   layout.setConstraints(botão9,c);
   pLeft.add(botão9);

   c.gridy = 4;
   c.gridx = 3;
   layout.setConstraints(botão10,c);
   pLeft.add(botão10);

   getContentPane().add("West", pLeft);

   setDefaultCloseOperation(EXIT_ON_CLOSE);
   repaint();

   }

}

:?: :?: :?: :?:

maikonaraujo

Eu gosto do projeto:

http://www.jgoodies.com/

acho fácil de usar e lah tem um tutorial bem legal.

Pilantra

Aff nada tá dando certo, modifiquei tudo aqui e mesmo assim ele não ocupa 2 células, não aumenta o tamanho conforme o frame cresce!!! O que será ein!?

arianrp

O NetBeans tem uma classe chamada AbsoluteConstraints, é so pega essa classe (da uma fuçada no diretorio de instalação ou da uma googleada msm ) e utiliza-la no seu projeto no eclipse.
é bem simples, funciona assim:

janela.getContentPane().setLayout(new AbsoluteLayout());
janela.getContentPane().add(seuComponente, new AbsoluteConstraints(eixo_x,eixo_y,largura,altura));

sussegado, daew eh so alegria, muito facil,
flwwww

:smiley:

Criado 4 de fevereiro de 2005
Ultima resposta 23 de jul. de 2005
Respostas 7
Participantes 4