#java #swing
Вопрос:
package com.company;
import java.util.Scanner;
import java.io.IOException;
public class Main {
public static void main(String[] args){
AtmProgram account = new AtmProgram();
Scanner input = new Scanner(System.in);
do {
int menuOption;
boolean continueInput = true;
System.out.println("************************************************");
System.out.println("1.Solde");
System.out.println("2.Dépôt");
System.out.println("3.Retrait");
System.out.println("4.Quitter");
System.out.println("************************************************");
System.out.print("Entrer Menu Option(et press Entrer):");
while(!input.hasNext()){
input.next();
}
menuOption = input.nextInt();
switch(menuOption){
//Solde
case 1:
System.out.println("SOLDE");
System.out.println(account.toString());
break;
//Depot
case 2:
try {
System.out.println("Dépôt");
System.out.println(account.toString());
System.out.print("Entrez le montant du dépôt:");
while(!input.hasNextDouble()){
input.next();
}
double montant_A_Deposer = input.nextDouble();
continueInput = false;
account.depot(montant_A_Deposer);
System.out.println("Nombre de dépôts: " account.depotCount);
System.out.println(account.toString());
} catch (IOException ex){
System.out.printf("Erreur: vérifiez soit votre entrée (nombre négatif), dépôt maximum par transaction (40K), fréquence de dépôt maximum (4)n",ex.getMessage());
}
catch (Exception ex){
System.out.printf("Dépôt maximum par jour atteintn",ex.getMessage());
}
break;
//Retrait
case 3:
try {
System.out.println("RETRAIT");
System.out.println(account.toString());
System.out.print("Entrez le montant du retrait:");
while(!input.hasNextDouble()){
input.next();
}
double montant_A_Retirer = input.nextDouble();
account.retrait(montant_A_Retirer);
System.out.println("Nombre de retraits: " account.retraitCount);
System.out.println(account.toString());
} catch(Exception e){
System.out.printf("Exception lors du retraitn",e.getMessage());
}
break;
//Quitter
case 4:
try {
System.out.print("Voulez-vous vraiment QUITTER? (O / N)");
if(input.next().equals("O")){
System.exit(0);
}
} catch (Exception ex){
System.out.printf("Exception à quitter",ex.getMessage());
}
break;
default:
System.out.println("Option de Menu non valide");
}
} while(true);
}
}
Класс программы ATM :
package com.company;
import java.util.Scanner;
import java.io.IOException;
public class AtmProgram {
private double solde;
private double totalRetrait;
private double totalDepot;
protected int retraitCount;
protected int depotCount;
private final double MAX_DEPOT_PAR_JOUR = 150000.00;
private final double MAX_DEPOT_PAR_TRANSACTION = 40000.00;
private final int MAX_DEPOT_FREQUENCE = 4;
private final double MAX_RETRAIT_PAR_JOUR = 50000.00;
private final double MAX_RETRAIT_PAR_TRANSACTION = 20000.00;
private final int MAX_RETRAIT_FREQUENCE = 4;
//Constricteur
public AtmProgram(){
solde = 0.00;
totalRetrait = 0.00;
totalDepot = 0.00;
retraitCount = 0;
depotCount = 0;
}
//Solde actuel
public String toString() {
return "Solde actuel:" solde;
}
//Getters
public double getSolde(){
System.out.printf("nCurrent Balance:%.2fn",solde);
return solde;
}
public double getTotalRetrait(){
System.out.printf("nTotal Withdrawals:%.2fn",totalRetrait);
return totalRetrait;
}
public double getTotalDepot(){
System.out.printf("nTotal Deposits:%.2fn",totalDepot);
return totalDepot;
}
public double depot(double montant) throws IOException,Exception{
if (montant > 0.00 amp;amp; montant <= MAX_DEPOT_PAR_TRANSACTION amp;amp; depotCount < MAX_DEPOT_FREQUENCE) {
depotCount ;
} else {
throw new IOException();
}
totalDepot = totalDepot montant;
if(totalDepot <= MAX_DEPOT_PAR_JOUR){
solde = solde montant;
} else {
throw new Exception();
}
return solde;
}
public double retrait(double montant) throws IOException,Exception {
if (montant > 0.00 amp;amp; montant < solde amp;amp; retraitCount < MAX_RETRAIT_FREQUENCE amp;amp; montant <= MAX_RETRAIT_PAR_TRANSACTION) {
retraitCount ;
} else {
throw new IOException();
}
totalRetrait = totalRetrait montant;
if(totalRetrait <= MAX_RETRAIT_PAR_JOUR){
solde = solde - montant;
} else {
throw new Exception();
}
return solde;
}
}
Класс интерфейса :
package com.company;
import javax.swing.*;
public class Interface {
private JPanel ATM_Interface;
private JTextArea textArea;
private JButton entrerButton;
private JButton correctionButton;
private JButton quitterButton;
private JButton btn0;
private JButton btn1;
private JButton btn2;
private JButton btn3;
private JButton btn4;
private JButton btn5;
private JButton btn6;
private JButton btn7;
private JButton btn8;
private JButton btn9;
private void createUIComponents() {
// TODO: place custom component creation code here
}
}
Комментарии:
2. И … в чем вопрос?
3. в отличие от того, что вы указали в своем вопросе, не похоже, что вы создали пользовательский интерфейс. Объявление кнопки и наличие кнопки, которую вы можете использовать, — это далеко не одно и то же. Кроме того, вы не должны публиковать все свои переменные экземпляра, это очень плохой дизайн. В принципе, вы хотите, чтобы мы написали код пользовательского интерфейса и связали с ним вашу бизнес-логику?
4. Консольное приложение работает хорошо
5. Код, управляемый событиями, отличается от кода ввода / вывода консоли. Вы должны создать графический интерфейс с самого начала вашего кода. У Oracle есть увлекательный учебник по созданию графического интерфейса с помощью JFC/Swing , который покажет вам, как создать правильный графический интерфейс. Пропустите раздел Netbeans.