é possivel colocar duas instancias de objetos dentro de uma grade do flowLayout???
Ex:
import javax.swing.*;
public class Exemplo extends JFrame{
JPanel p;
Container c = getContentPane();
Exemplo(){
setSize(981, 623);
setVisible(true);
setLocationRelativeTo(null);
setDefaultCloseOperation(EXIT_ON_CLOSE);
p = new JPanel();
p.setBorder(BorderFactory.createTitledBorder("LOGIN"));
c.add(p);
p.setLayout(new FlowLayout.LEFT, 3, 6));
JLabel l1 = new JLabel("Nome: ");
JTextField t1 = new JTextField();
t1.setColumns(10);
p.add(l1, t1);
}
public static void main(String[] args) {
JFrame Janela= new Exemplo();
Janela.show();
WindowListener x=new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
};
Janela.addWindowListener(x);
}
Ao compilar isto ele só exibirá o JLabel, preciso fazer isto para que o layout do meu formulário não perca o sentido, caso o usuário do sistema queira alterar o tamanho da tela. Se a tela for diminuida para adapitar ao espaço da tela do usuário, no meu formulario quero que uma TextField fique do lado de sua JLabel correspondente!!!
A menos que você queira escrever tudo à mão, recomendo usar o WindowBuilder. O código gerado é um pouco grande mas não tive de mexer em uma linha de código (tá certo que ele também não faz nada).
package guj;
import java.awt.BorderLayout;
public class LoginDialog extends JDialog {
private final JPanel contentPanel = new JPanel();
private JLabel lblUsurio;
private JLabel lblSenha;
private JTextField textField;
private JPasswordField passwordField;
/**
* Launch the application.
*/
public static void main(String[] args) {
try {
LoginDialog dialog = new LoginDialog();
dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
dialog.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* Create the dialog.
*/
public LoginDialog() {
setTitle("Sistema de Cataloga\u00E7\u00E3o de Rebimbocas para Parafusetas");
setBounds(100, 100, 450, 167);
getContentPane().setLayout(new BorderLayout());
contentPanel.setBorder(new TitledBorder(null, "Login", TitledBorder.LEADING, TitledBorder.TOP, null, null));
getContentPane().add(contentPanel, BorderLayout.CENTER);
contentPanel.setLayout(new MigLayout("", "[][grow]", "[][]"));
contentPanel.add(getLblUsurio(), "cell 0 0,alignx trailing");
contentPanel.add(getTextField(), "cell 1 0,growx");
contentPanel.add(getLblSenha(), "cell 0 1,alignx trailing");
contentPanel.add(getPasswordField(), "cell 1 1,growx");
{
JPanel buttonPane = new JPanel();
buttonPane.setLayout(new FlowLayout(FlowLayout.CENTER));
getContentPane().add(buttonPane, BorderLayout.SOUTH);
{
JButton okButton = new JButton("OK");
okButton.setActionCommand("OK");
buttonPane.add(okButton);
getRootPane().setDefaultButton(okButton);
}
{
JButton cancelButton = new JButton("Cancel");
cancelButton.setActionCommand("Cancel");
buttonPane.add(cancelButton);
}
}
}
private JLabel getLblUsurio() {
if (lblUsurio == null) {
lblUsurio = new JLabel("Usu\u00E1rio:");
}
return lblUsurio;
}
private JLabel getLblSenha() {
if (lblSenha == null) {
lblSenha = new JLabel("Senha:");
}
return lblSenha;
}
private JTextField getTextField() {
if (textField == null) {
textField = new JTextField();
textField.setColumns(10);
}
return textField;
}
private JPasswordField getPasswordField() {
if (passwordField == null) {
passwordField = new JPasswordField();
}
return passwordField;
}
}