Ich fragte mich, ob ich ein JLabel erstellen könnte, das geschlossen werden könnte. Dies ist mein Code:Java Label, das geschlossen werden kann
package Bank;
import java.awt.EventQueue;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
import java.awt.Color;
public class BankLogin {
String usernameuser;
String passworduser;
ArrayList<String> Usernames = new ArrayList<String>();
ArrayList<String> Passwords = new ArrayList<String>();
private JFrame frame;
private JTextField Username;
private JTextField textField_1;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
BankLogin window = new BankLogin();
window.frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the application.
*/
public BankLogin() {
initialize();
}
/**
* Initialize the contents of the frame.
*/
private void initialize() {
frame = new JFrame();
frame.setBounds(100, 100, 508, 381);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().setLayout(null);
JLabel Messages = new JLabel("New label");
Messages.setBackground(Color.RED);
Messages.setFont(new Font("Tahoma", Font.PLAIN, 20));
Messages.setBounds(99, 132, 383, 75);
frame.getContentPane().add(Messages);
Messages.setVisible(false);
Username = new JTextField();
Username.setBounds(231, 66, 131, 30);
frame.getContentPane().add(Username);
Username.setColumns(10);
textField_1 = new JTextField();
textField_1.setColumns(10);
textField_1.setBounds(231, 132, 131, 30);
frame.getContentPane().add(textField_1);
JLabel lblUsername = new JLabel("Username");
lblUsername.setFont(new Font("Tahoma", Font.PLAIN, 20));
lblUsername.setBounds(109, 66, 112, 36);
frame.getContentPane().add(lblUsername);
JLabel lblPassword = new JLabel("Password");
lblPassword.setFont(new Font("Tahoma", Font.PLAIN, 20));
lblPassword.setBounds(109, 125, 112, 36);
frame.getContentPane().add(lblPassword);
JButton btnLogin = new JButton("Login");
btnLogin.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
}
});
btnLogin.setBounds(109, 240, 89, 23);
frame.getContentPane().add(btnLogin);
JButton btnRegister = new JButton("Register");
btnRegister.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if((lblUsername.getText()).length() != 0 && (lblPassword.getText()).length() != 0){
Usernames.add(lblUsername.getText());
Passwords.add(lblPassword.getText());
Messages.setVisible(true);
Messages.setText("Thank you for creating an account.");
// Messages.setVisible(false);
}
else{
Messages.setVisible(true);
Messages.setText("Error");
}
}
});
btnRegister.setBounds(273, 240, 89, 23);
frame.getContentPane().add(btnRegister);
}
}
Das Programm ist im Grunde eine Anmeldung/Registrierung Sache. Ich habe zwei Arrays erstellt, die den Benutzernamen und das Passwort getrennt speichern. Nachdem der Benutzer sich registriert hat, habe ich ein Jlabel gemacht, um mich für die Registrierung zu bedanken, aber ich möchte, dass es vom Benutzer geschlossen werden kann. Im Moment muss ich die Sichtbarkeit von Nachrichten auf falsch setzen, aber gibt es einen anderen Weg?
Ein anderer Weg wie vielleicht ein Dialogfeld? Überprüfen Sie [JOptionPane] (https://docs.oracle.com/javase/8/docs/api/javax/swing/JOptionPane.html), insbesondere [showMessageDialog] (https://docs.oracle.com/javase /8/docs/api/javax/swing/JOptionPane.html#showOptionDialog-java.awt.Component-java.lang.Object-java.lang.String-int-int-javax.swing.Icon-java.lang.Object : A-java.lang.Object-) und Freunde. –