可以关闭的Java标签
我想知道是否可以创建一个可以关闭的JLabel。 这是我的代码:可以关闭的Java标签,java,user-interface,jlabel,Java,User Interface,Jlabel,我想知道是否可以创建一个可以关闭的JLabel。 这是我的代码: 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.JFram
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);
}
}
package银行;
导入java.awt.EventQueue;
导入java.awt.Font;
导入java.awt.event.ActionEvent;
导入java.awt.event.ActionListener;
导入java.util.ArrayList;
导入javax.swing.JButton;
导入javax.swing.JFrame;
导入javax.swing.JLabel;
导入javax.swing.JTextField;
导入java.awt.Color;
公共类银行登录{
字符串usernameuser;
字符串密码用户;
ArrayList用户名=新的ArrayList();
ArrayList Passwords=新的ArrayList();
私有JFrame;
私有JTextField用户名;
私有JTextField textField_1;
/**
*启动应用程序。
*/
公共静态void main(字符串[]args){
invokeLater(新的Runnable(){
公开募捐{
试一试{
BankLogin窗口=新建BankLogin();
window.frame.setVisible(true);
}捕获(例外e){
e、 printStackTrace();
}
}
});
}
/**
*创建应用程序。
*/
公共银行登录(){
初始化();
}
/**
*初始化框架的内容。
*/
私有void初始化(){
frame=新的JFrame();
机架立根(100100508381);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().setLayout(null);
JLabel消息=新JLabel(“新标签”);
消息。挫折背景(颜色。红色);
Messages.setFont(新字体(“Tahoma”,Font.PLAIN,20));
消息.挫折(99132383,75);
frame.getContentPane().add(消息);
Messages.setVisible(false);
用户名=新的JTextField();
用户名.setBounds(231,66,131,30);
frame.getContentPane().add(用户名);
Username.setColumns(10);
textField_1=新的JTextField();
textField_1.设置列(10);
textField_1.设置边界(231、132、131、30);
frame.getContentPane().add(textField_1);
JLabel lblUsername=新的JLabel(“用户名”);
setFont(新字体(“Tahoma”,Font.PLAIN,20));
lblUsername.挫折(109,66,112,36);
frame.getContentPane().add(lblUsername);
JLabel lblPassword=新的JLabel(“密码”);
lblPassword.setFont(新字体(“Tahoma”,Font.PLAIN,20));
lblPassword.setBounds(109、125、112、36);
frame.getContentPane().add(lblPassword);
JButton btnLogin=新JButton(“登录”);
btnLogin.addActionListener(新的ActionListener(){
已执行的公共无效操作(操作事件arg0){
}
});
btnLogin.立根(109,240,89,23);
frame.getContentPane().add(btnLogin);
JButton btnRegister=新JButton(“寄存器”);
btnRegister.addActionListener(新ActionListener(){
已执行的公共无效操作(操作事件e){
if((lblUsername.getText()).length()!=0&(lblPassword.getText()).length()!=0){
添加(lblUsername.getText());
add(lblPassword.getText());
Messages.setVisible(true);
Messages.setText(“感谢您创建帐户”);
//Messages.setVisible(false);
}
否则{
Messages.setVisible(true);
Messages.setText(“错误”);
}
}
});
b登记在案的挫折数(273、240、89、23);
frame.getContentPane().add(btnRegister);
}
}
该程序基本上是一个登录/注册的东西。我制作了两个数组,分别存储用户名和密码。在用户注册之后,我做了一个Jlabel来感谢您的注册,但是我希望它能够被用户关闭。
现在我需要将消息的可视性设置为false,但是还有其他方法吗?是的,还有其他方法。您可以使用一个JButton来代替标签,该JButton已格式化为看起来像标签一样。但是,当你点击它时,文本消失了。您可以添加一个操作侦听器,以便在单击按钮时删除文本。请尝试下面的代码。新的和修改过的代码都标有注释
package banklogin;
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);
JButton Messages = new JButton("New label"); // new
Messages.setBorderPainted(false); // new
Messages.setBackground(new Color(240,240,240)); // new
Messages.setFont(new Font("Tahoma", Font.PLAIN, 18)); // changed
Messages.setBounds(50, 175, 383, 50); // changed
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) {
}
});
Messages.addActionListener(new ActionListener() { // new
public void actionPerformed(ActionEvent e) { // new
Messages.setText(""); // new
} // new
}); // new
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);
}
}
package银行登录;
导入java.awt.EventQueue;
导入java.awt.Font;
导入java.awt.event.ActionEvent;
导入java.awt.event.ActionListener;
导入java.util.ArrayList;
导入javax.swing.JButton;
导入javax.swing.JFrame;
导入javax.swing.JLabel;
导入javax.swing.JTextField;
导入java.awt.Color;
公共类银行登录{
字符串usernameuser;
字符串密码用户;
ArrayList用户名=新的ArrayList();
ArrayList Passwords=新的ArrayList();
私有JFrame;
私有JTextField用户名;
私有JTextField textField_1;
/**
*启动应用程序。
*/
公共静态void main(字符串[]args){
invokeLater(新的Runnable(){
公开募捐{
试一试{
BankLogin窗口=新建BankLogin();
window.frame.setVisible(true);
}捕获(例外e){
e、 printStackTrace();
}
}
});
}
/**
*创建应用程序。
*/
公共银行登录(){
初始化();
}
/**
*初始化框架的内容。
*/
私有void初始化(){
frame=新的JFrame();
机架立根(100100508381);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().setLayout(null);
JButton Messages=newjbutton(“新标签”);//新
Messages.setboordpainted(false);//新建
Messages.setBackground(新颜色(240240));//新
Messages.setFont(新字体(“Tahoma”,Font.PLAIN,18));//已更改
Messages.setBounds(50175383350);//已更改
frame.getContentPane().add(消息);
Messages.setVisible(false);
用户名=新的JTextField();
用户名.setBounds(231,66,131,30);
frame.getContentPane().add(用户名);
Username.setColumns(10);
textField_1=新的JTextField();
textField_1.设置列(10);
textField_1.设置边界(231、132、131、30);
frame.getCont