:idea:
Caso alguem tenha dificuldade para implementar interfaces com o GridBagLayout ou tem preguiça porque é muito trabalhoso, uma alternativa são os pacotes do JGoodies. Fiz uma telinha pra galera ver mais ou menos como se usa. Porém fiz somente o que eu aprendi.
Para Baixar os pacotes do JGoodies. Segue o Link. No caso Usei o Forms.
[url]http://www.jgoodies.com/downloads/libraries.html[/url]
import java.awt.Color;
import java.awt.Container;
import java.awt.Image;
import java.awt.Toolkit;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import com.jgoodies.forms.layout.CellConstraints;
import com.jgoodies.forms.layout.FormLayout;
/*
* Created on 02/08/2005
*
* TODO To change the template for this generated file go to
* Window - Preferences - Java - Code Style - Code Templates
*/
/**
* @author Lex Luthor
*
* TODO To change the template for this generated type comment go to
* Window - Preferences - Java - Code Style - Code Templates
*/
public class TesteJGoodies extends JFrame{
private Container cont;
private JPanel panelBackGound;
private JPanel panel;
/**
*
*/
public TesteJGoodies() {
super(" Teste com JGoodies "); //título
cont = this.getContentPane();
// Pega icone para a frame passando o diretório do icone.gif
Image icon = Toolkit.getDefaultToolkit().getImage("Battery.gif");
this.setIconImage(icon); //adiciona o icone a frame.
this.setResizable(false); //impede que a frame seja maximizada.
panelBackGound = new JPanel(); //Painel de fundo.
panel = new JPanel(); //Painel da Imagem.jpg
//Pega a imagem para o painel passando o diretório da imagem.
Icon imgem = new ImageIcon("logo.jpg");
JLabel img = new JLabel(imgem);
panel.add(img);
//Trata o layout com classes do JGoodies.
//ao contrário do GridBag ou do GridLayout
//que trabalha com linha e coluna.
//No JGoodies é coluna,linha
panelBackGound.setLayout(new FormLayout(
//aqui são as colunas, no caso são 3.
//Mas coloquei os objetos na coluna do centro.
//as outras usei pra espaçar da borda.
"2dlu, center:pref, 2dlu",
//aqui são as linhas, no caso são 9.
//cada item separado por virgula é uma linha
//o mesmo vale pras colunas.
"4dlu, pref, 2dlu, " +
"pref, 2dlu," +
"pref, 2dlu," +
"pref, 4dlu,"));
//CellConstraints permite criar grade por cordenadas cartesianas.
CellConstraints cc = new CellConstraints();
//seta o layout corretamente conforme posições.
//nesse casso esta sendo adicionado no painel panelBackGound
//na coluna 2, linha 2
panelBackGound.add(new JLabel("Teste JGoodies"), cc.xy(2, 2));
//aqui coluna 2 linha 4
panelBackGound.add(panel, cc.xy(2, 4));
//aqui coluna 2 linha 6 sempre pulando uma linha para dar espaço
//entre os objetos.
panelBackGound.add(new JLabel("Datasul Tecnologia"), cc.xy(2, 6));
//aqui coluna 2 linha 8
panelBackGound.add(new JLabel("Powered by lex-dmm"), cc.xy(2, 8));
//seta uma cor RGB ridícula no painel.Mude a cor alterando os números.
panelBackGound.setBackground(new Color(010,18,192));
//joga tudo pro container da Frame.
cont.add(panelBackGound);
}
public static void main(String[] args) {
TesteJGoodies testeJGoodies = new TesteJGoodies();
testeJGoodies.show(); //torna visível.
testeJGoodies.pack(); //deixa do tamanho dos objetos.
}
}