E ai moçada, beleza? Em quase todos os fóruns que visito as pessoas recomendam o MigLayout para criação de GUI… Eu comecei a estudar o Mig Layout e surgiu uma dúvida em relação a alinhamentos dos componentes, mais precisamente o tamanho dos Text Field. Alguém pode dar uma dica de como deixa-los alinhados?
Abaixo segue o código que utilizei para a criação da GUI e ScreenShot dela. Pra entender o que eu estou querendo dizer, basta olhar para o textfield referente a Fax e o referente a Email… Ambos estão desalinhados.
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
import javax.swing.text.MaskFormatter;
import net.miginfocom.swing.MigLayout;
public class GuiAgenda extends JFrame
{
JLabel lcodigo = new JLabel ("Codigo");
JTextField tfCodigo = new JTextField (3);
JLabel lnome = new JLabel ("Nome");
JTextField tfnome = new JTextField (25);
MigLayout MigLayout = new MigLayout ();
JPanel panel = new JPanel ();
JButton b_teste = new JButton ("Teste");
String nomes [] = {"CE", "PA", "RJ"};
JLabel lendereco = new JLabel ("Endereço");
JTextField tfendereco = new JTextField (30);
JLabel lnumero = new JLabel ("Nº");
JTextField tfnumero = new JTextField (3);
JLabel lcidade = new JLabel ("Cidade");
String sexos [] = {"Masculino", "Feminino"};
JLabel lsexo = new JLabel ("Sexo");
JComboBox sexobox = new JComboBox (sexos);
JTextField tfcidade = new JTextField (15);
JLabel lestado = new JLabel ("Estado");
JComboBox combobox = new JComboBox (nomes);
JLabel lTelefone = new JLabel ("Telefone");
JFormattedTextField tfTelefone = new JFormattedTextField (Mascara("(##)####-####"));
JLabel lFax = new JLabel ("FAX");
JFormattedTextField tfFax = new JFormattedTextField (Mascara("(##)####-####"));
JLabel lemail = new JLabel ("E-mail");
JTextField tfEmail = new JTextField (19);
JButton bNovo = new JButton ("Novo");
JButton bSalvar = new JButton ("Salvar");
JButton bLocalizar = new JButton ("Localizar");
JButton bDeletar = new JButton ("Deletar");
JButton bSair = new JButton ("Sair");
JPanel panel2 = new JPanel ();
public GuiAgenda ()
{
super ("Agenda");
super.setDefaultCloseOperation(EXIT_ON_CLOSE);
super.setVisible(true);
super.setLocationRelativeTo(null);
super.setLayout(new BorderLayout());
super.setResizable (false);
super.setSize (475,220);
panel.setLayout(MigLayout);
panel2.setLayout(new FlowLayout());
tfTelefone.setPreferredSize(new Dimension(90,25));
tfFax.setPreferredSize(new Dimension(90,25));
panel.add(lcodigo);
panel.add(tfCodigo,"wrap");
panel.add(lnome);
panel.add(tfnome,"wrap");
panel.add(lendereco);
panel.add(tfendereco,"split");
panel.add(lnumero);
panel.add(tfnumero, "wrap, span, split");
panel.add(lsexo);
panel.add(sexobox,"split");
panel.add(lcidade);
panel.add(tfcidade,"split");
panel.add(lestado);
panel.add(combobox,"wrap, span");
panel.add(lTelefone);
panel.add(tfTelefone, "split");
panel.add(lFax);
panel.add(tfFax,"wrap");
panel.add(lemail);
panel.add(tfEmail);
panel2.add(bNovo);
panel2.add(bSalvar);
panel2.add(bDeletar);
panel2.add(bLocalizar);
panel2.add(bSair);
super.add(panel,BorderLayout.CENTER);
super.add(panel2,BorderLayout.SOUTH);
bSair.addActionListener(new BotaoAcao
());
}
public MaskFormatter Mascara(String Mascara){
MaskFormatter F_Mascara = new MaskFormatter();
try{
F_Mascara.setMask(Mascara); //Atribui a mascara
F_Mascara.setPlaceholder(" "); //Caracter para preencimento
}
catch (Exception excecao) {
excecao.printStackTrace();
}
return F_Mascara;
}
private class BotaoAcao implements ActionListener
{
public void actionPerformed (ActionEvent event)
{
if (event.getSource() == bSair)
{
System.exit(0);
}
}
}
}
P.s.: Vale ressaltar que ainda sou novato em programação Java, e agradeceria bastante alguém me dar uma luz. Valeu! =D