Interfaz gráfica de usuario java
importar java.awt.*;
importar java.awt.event.*;
importar java.util.regex.pattern;
Importar javax.swing.*;
El marco de extensión ATMSHAM de clase pública implementa ActionListener{
Marco JFrame privado;
JPanel privado jp1, jp2, jp3, jp4
Contraseña privada de JTextField;
Iniciar, seleccionar, cancelar, guardar y salir de JButton privado;
JLabel JL 1 privado;
Private double m = 0; //Establece el monto inicial
ATMSHAM público(){
Frame = new JFrame("Interfaz de cajero automático simulada");
frame.setLocation(280, 280);
contenedor c = frame. getcontentpane();
JL 1 = new JLabel("contraseña:"); p >
contraseña = new JPasswordField(18); //Resultados de salida
//Configuración de fuente
Jl1.setFont(new font("天", font. negrita, 20));
Contraseña.setFont(nueva fuente("ì", font.
Negrita, 20));
start = new JButton(" start ");
start . consultar saldo");
seleccione . addactionlistener(this);
cancelar = new JButton(" end ");
cancelar . addactionlistener(this);
save = new JButton(" depositar ");
save addactionlistener(this);
Out = new JButton("Retirar");
p>
out . addactionlistener(this);
select set enable(false);
save set enable(false); . set enable(false);
jp 1 = new JPanel(); //Panel principal
jp2 = new JPanel() //Panel de entrada de contraseña
jp3 = new JPanel(); //Panel de botones
jp4 = new JPanel(); //Panel de botones
//Diseño del formulario
jp2 . establecer diseño (nuevo FlowLayout());
jp2 . (nuevo FlowLayout());
jp3.add(inicio);
jp3.add(seleccionar);
jp3.add(cancelar); /p>
jp4.add(save);
jp4 .add(out);
jp 1. establecer diseño (nuevo GridLayout(3, 1)); /p>
jp 1 . agregar(jp2);
jp 1 . >c .add(jp 1);
marco .pack();
marco visible(verdadero);
marco setresizable. ;
contraseña . requestfocusinwindow(); //Ingrese el cuadro de texto para obtener el foco
}
//Clase de escucha del botón
Se ha realizado una operación pública no válida (evento de operación e)
{
String s =
If(e.getSource()==start){// Ir.
s = contraseña.getText(). toString();//Obtener contraseña
if(s.quals(" "){//No se ingresó contraseña.
Joptionpane. Mostrar cuadro de diálogo de mensaje (vacío, "Puedes no tiene Ingrese la contraseña, vuelva a ingresar"); // Aparece un cuadro emergente de mensaje.
contraseña . requestfocusinwindow(); //La entrada de contraseña establece el foco
}
Else if(mode.matches ("[0-9] {6} $ ",s))//Ingresaste un número de seis dígitos.
{
contraseña configurada habilitada (falsa); //La verificación de la contraseña es correcta. No puede volver a ingresar su contraseña.
select .set enable(true); //Si la contraseña se verifica correctamente, se puede consultar el saldo.
save .set enable(true); //La verificación de la contraseña es correcta y puedes ahorrar dinero.
out .set enable(true); //La verificación de la contraseña es correcta y puedes retirar dinero.
}
De lo contrario//No ingresaste seis dígitos. Por favor vuelva a ingresar su contraseña.
{
Panel de opciones. Mostrar cuadro de diálogo de mensaje (vacío, "El formato de la contraseña que ingresó es incorrecto, vuelva a ingresar");
contraseña . (); //Enfoque de configuración de entrada de contraseña
}
}
//Ver saldo
else if(e.getSource( )== seleccionar){
Panel de opciones. Mostrar cuadro de diálogo de mensaje (vacío, "Aún tienes "m" yuanes");
}
//Salir
else if(e.getSource( )==cancelar){
dispose();
sistema salir(0);
}
//Depositar<. /p>
else if(e.getSource()==save){
Resultado de cadena = panel de opciones. ShowinputDialog (null, "Ingrese el monto del depósito");
if (resultado == null)
Devolver;
else if(result.equals( " ")
Panel de opciones. Mostrar cuadro de diálogo de mensaje (vacío, "No ingresó el monto, vuelva a ingresar el monto a depositar");
De lo contrario, si (Patrón. coincidencias( "^[0-9] $", resultado)||pattern.matches("^[0-9] \\. [0-9] $ ", resultado))
{
doble re = Double.parseDouble(resultado);
m = re;
}
Otros
{
Panel de opciones. Mostrar cuadro de diálogo de mensaje (vacío, "El formato del monto que ingresó es incorrecto, vuelva a ingresar");
}
}
//Retirar dinero
else if(e.getSource()==out){
Resultado de cadena = panel de opciones Showinputdialog (nulo, " Ingrese el monto del retiro"); //Abre un cuadro de entrada y obtenga el valor de entrada.
If(result == null)//Haga clic en el botón cancelar del cuadro de diálogo de entrada.
Devolver;
else if(resultado. Igual(" ")//No se ingresó ninguna cantidad.
Panel de opciones. Mostrar cuadro de diálogo de mensaje (vacío, "No se ingresó el monto, vuelva a ingresar el monto a retirar");
Else if(pattern.match("[0-9] $ ",resultado)||pattern.match("[0 -9] \. [0-9] $ ", resultado))//La entrada no está vacía y es correcta.
{
double re = Double.parseDouble(resultado) ;
Si (m lt= 0)//No hay un monto ideal
Mostrar cuadro de diálogo (vacío, "No tienes monto para retirar, deposita el monto" ) ;
else if(m-re lt; 0) //Hay una cantidad disponible, pero la cantidad es insuficiente
Mostrar cuadro de diálogo de mensaje (nulo, "Tú. solo tiene "m". "Yuan, la cantidad es insuficiente");
else if(m-re gt;=0)//La cantidad es suficiente.
m- = re;
}
Else//La entrada no está vacía pero es incorrecta
{
Mostrar cuadro de diálogo de mensaje (. vacío, "La cantidad que ingresó tiene un formato." Error, vuelva a ingresar");
}
}
/*Cerrar evento de ventana* /
frame . addwindowlistener(new window adaptor(){
Cierre de ventana vacía pública (WindowEvent e)
{
dispose( );
sistema . salir( 0);
}
});
}
público static void main(String Args[]){//entrada del método principal
System.out.println("El programa comienza...");
nuevos cajeros automáticos ham();
}
}