A continuación, lee la descripción del caso de estudio (requerimientos) y posteriormente completa el código.
Se desea crear una ventana que tenga dos cajas de texto y un botón. En las cajas de texto se van a almacenar usuario y contraseña; cuando se dé clic en el botón, se debe validar si el usuario y la contraseña están almacenadas en una base de datos (un archivo de texto). Si los datos ingresados corresponden con los datos del archivo, se debe mostrar una ventana emergente que diga “¡Welcome!”. Pero si, por el contrario, los datos no corresponden, se debe mostrar una ventana emergente que diga “Login fail”. El archivo de texto se llama users.txt y su contenido tiene la siguiente forma:
usuario1:password1
usuario2:password2
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.GridLayout;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JButton;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.JPasswordField;
import javax.swing.JLabel;
/**
*
* @author Jorge A. Solano
**/
public class Login {
JFrame ventana;
JTextField usrTxt;
JPasswordField pwdTxt;
public Login(){
ventana = new JFrame("Login");
Container container = ventana.getContentPane();
container.setLayout(new BorderLayout());
JPanel panel = new JPanel();
panel.setLayout(new GridLayout(2,2));
JPanel panelButton = new JPanel();
panelButton.setLayout(new GridLayout(1, 1));
JLabel user = new JLabel("Usuario");
usrTxt = new JTextField();
panel.add(user);
panel.add(usrTxt);
JLabel pwd = new JLabel("Contraseña");
pwdTxt = new JPasswordField(10);
panel.add(pwd);
panel.add(pwdTxt);
JButton btn = new JButton("Iniciar sesión");
ButtonAction action = new ButtonAction();
btn.addActionListener(action);
panelButton.add(btn);
container.add(panel,BorderLayout.CENTER);
container.add(panelButton,BorderLayout.SOUTH);
ventana.setSize(350, 150);
ventana.setResizable(false);
ventana.setVisible(true);
//ventana.addWindowListener(this);
ventana.setLocationRelativeTo(null);
ventana.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
private class ButtonAction implements ActionListener {
@Override
public void actionPerformed(ActionEvent event) {