Olá, eu gostaria da ajuda de vocês para resolver o meu problema atual.
O problema é: eu gostaria de utilizar um Layout para que os meus itens dentro do JPanel ficassem
centralizados e um abaixo do outro, para que quando o usuario selecionase o botao de ‘MAXIMIZAR’,
os itens não ficassem destorcidos.
Então esse seria a parte do com problema:
GradientPanel panelPrincipal = new GradientPanel(Color.CYAN, Color.PINK);
panelPrincipal.setBackground(new Color(0, 0, 0, 0));
panelPrincipal.setAlignmentX(SwingConstants.CENTER);
contentPane.add(panelPrincipal, BorderLayout.CENTER);
GridBagLayout gbl_panelPrincipal = new GridBagLayout();
gbl_panelPrincipal.columnWidths = new int[] { 0, 0, 0 };
gbl_panelPrincipal.rowWeights = new double[] { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 };
gbl_panelPrincipal.rowHeights = new int[] { 0, 0, 0, 0, 0, 0, 0, 0 };
panelPrincipal.setLayout(gbl_panelPrincipal);
JLabel labelNome = new JLabel("USERNAME", SwingConstants.CENTER);
labelNome.setHorizontalTextPosition(SwingConstants.CENTER);
labelNome.setForeground(Color.BLACK);
labelNome.setFont(new Font("Simplified Arabic", Font.BOLD, 14));
labelNome.setHorizontalAlignment(SwingConstants.CENTER);
GridBagConstraints gbc_labelNome = new GridBagConstraints();
gbc_labelNome.insets = new Insets(0, 0, 5, 0);
gbc_labelNome.gridx = 2;
gbc_labelNome.gridy = 0;
panelPrincipal.add(labelNome, gbc_labelNome);
JFormattedTextField textNome = new JFormattedTextField();
textNome.setFont(new Font("Tahoma", Font.BOLD, 12));
textNome.setForeground(Color.BLACK);
textNome.setOpaque(false);
textNome.setColumns(20);
textNome.setVisible(true);
textNome.setBorder(null);
textNome.setHorizontalAlignment(SwingConstants.CENTER);
GridBagConstraints gbc_textNome = new GridBagConstraints();
gbc_textNome.insets = new Insets(0, 0, 5, 0);
gbc_textNome.gridx = 2;
gbc_textNome.gridy = 1;
panelPrincipal.add(textNome, gbc_textNome);
textNome.grabFocus();
// -------------------- LISTENER TEXT NOME --------------------
textNome.addKeyListener(new KeyAdapter() {
public void keyTyped(java.awt.event.KeyEvent e) {
// VALIDATE EACH CHARACTER TYPED
String caracteresInvalidos = "0987654321'\"!@#$%¨&*()_-=+§ªº°;´`~^;:><?/\\|.[]{},";
if (caracteresInvalidos.contains(e.getKeyChar() + "")) {
e.consume();
}
}
// CLOSE WINDOW
public void keyPressed(KeyEvent e) {
int key = e.getKeyCode();
if (key == 27) {
System.exit(0);
}
}
});
JSeparator separator = new JSeparator();
separator.setForeground(Color.BLACK);
separator.setBackground(Color.BLACK);
separator.setVisible(true);
GridBagConstraints gbc_separator = new GridBagConstraints();
gbc_separator.insets = new Insets(0, 0, 5, 0);
gbc_separator.gridx = 2;
gbc_separator.gridy = 2;
panelPrincipal.add(separator, gbc_separator);
// -------------------- SEPARATOR TEXT NOME --------------------
JLabel labelSenha = new JLabel("PASSWORD");
labelSenha.setHorizontalTextPosition(SwingConstants.CENTER);
labelSenha.setHorizontalAlignment(SwingConstants.CENTER);
labelSenha.setForeground(Color.BLACK);
labelSenha.setFont(new Font("Simplified Arabic", Font.BOLD, 14));
GridBagConstraints gbc_labelSenha = new GridBagConstraints();
gbc_labelSenha.insets = new Insets(0, 0, 5, 0);
gbc_labelSenha.gridx = 2;
gbc_labelSenha.gridy = 3;
panelPrincipal.add(labelSenha, gbc_labelSenha);
// -------------------- LISTENNER BOTAO LOGIN --------------------
JButton botaoLogin = new JButton("LOG IN");
botaoLogin.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
String username = textNome.getText().trim();
String password = new String(textSenha.getPassword());
if (!username.toString().isEmpty()) {
if (GerenciadorCliente.UsernameExists(username)) {
List<Cliente> listaClientes = GerenciadorCliente.consultaTodosClientes();
boolean existe = false;
for (int id = 0; id < listaClientes.size(); id++) {
Cliente cliente = listaClientes.get(id);
if (cliente.getPass().equals(password)) {
existe = true;
break;
}
}
if (existe) {
GerenciadorCliente.clear(textNome);
GerenciadorCliente.clear(textSenha);
aviso = new Notification("Bem vindo(a) " + username);
// ABRIR NOVA TELA
} else {
GerenciadorCliente.clear(textSenha);
System.out.println(password);
JOptionPane.showMessageDialog(Home.this,
"Não foi possivel encontrar uma senha compativel com o usuário: \"" + username
+ "\".");
}
} else if (GerenciadorFuncionario.UsernameExists(username)) {
List<Funcionario> listaFfuncionarios = GerenciadorFuncionario.consultaTodosFuncionarios();
boolean existe = false;
for (int id = 0; id < listaFfuncionarios.size(); id++) {
Funcionario funcionario = listaFfuncionarios.get(id);
// if (funcionario.getp) {
// }
}
} else {
JOptionPane.showMessageDialog(null, "O username inserido não existe no banco");
}
} else {
if (aviso != null) {
aviso.dispose();
}
aviso = new Notification("O nome não pode estar vazio");
aviso.addKeyListener(new KeyAdapter() {
public void keyPressed(KeyEvent e) {
if (e.getKeyCode() == 27) {
aviso.dispose();
textNome.grabFocus();
}
}
});
}
}
});
// -------------------- PASSWORD TEXT SENHA --------------------
textSenha = new JPasswordField();
textSenha.setHorizontalAlignment(SwingConstants.CENTER);
textSenha.setFont(new Font("Tahoma", Font.BOLD, 12));
textSenha.setEchoChar('*');
textSenha.setForeground(Color.BLACK);
textSenha.setOpaque(false);
textSenha.setVisible(true);
textSenha.setColumns(20);
GridBagConstraints gbc_textSenha = new GridBagConstraints();
gbc_textSenha.insets = new Insets(0, 0, 5, 0);
gbc_textSenha.gridx = 2;
gbc_textSenha.gridy = 4;
panelPrincipal.add(textSenha, gbc_textSenha);
// -------------------- LISTENER TEXT SENHA --------------------
textSenha.addKeyListener(new KeyAdapter() {
public void keyTyped(java.awt.event.KeyEvent e) {
// VALIDAR CADA CARACTER DIGITADO
String caracteresInvalidos = "'\"!@#$%¨&*()_-=+§ªº°;´`~^;:><?/\\|.[]{},";
if (caracteresInvalidos.contains(e.getKeyChar() + "")) {
e.consume();
}
}
});
botaoLogin.setIcon(null);
botaoLogin.setBackground(Color.BLACK);
botaoLogin.setForeground(Color.WHITE);
botaoLogin.setBorder(null);
GridBagConstraints gbc_botaoLogin = new GridBagConstraints();
gbc_botaoLogin.insets = new Insets(0, 0, 5, 0);
gbc_botaoLogin.gridx = 2;
gbc_botaoLogin.gridy = 5;
panelPrincipal.add(botaoLogin, gbc_botaoLogin);
JSeparator separator_1 = new JSeparator();
separator_1.setForeground(Color.BLACK);
separator_1.setBackground(Color.BLACK);
GridBagConstraints gbc_separator_1 = new GridBagConstraints();
gbc_separator_1.insets = new Insets(0, 0, 5, 0);
gbc_separator_1.gridx = 2;
gbc_separator_1.gridy = 6;
panelPrincipal.add(separator_1, gbc_separator_1);
botaoCadastrar.setSelectedIcon(null);
botaoCadastrar.setForeground(Color.RED);
botaoCadastrar.setOpaque(false);
botaoCadastrar.setBorder(null);
botaoCadastrar.setBackground(new Color(0, 0, 0, 0));
botaoCadastrar.setFocusable(false);
GridBagConstraints gbc_botaoCadastrar = new GridBagConstraints();
gbc_botaoCadastrar.gridx = 2;
gbc_botaoCadastrar.gridy = 7;
panelPrincipal.add(botaoCadastrar, gbc_botaoCadastrar);
BOM, O OBJETIVO SERIA ESTE:
MAS INFELISMENTE O MAXIMO QUE CONSEGUI FOI ISTO: