GUI BankSystem

master
obai 2024-09-02 14:50:28 +02:00
parent 3ef3b1618a
commit 93f837d241
9 changed files with 323 additions and 31 deletions

View File

@ -0,0 +1,63 @@
package GUIAnwendungen.Meine_GUI_Chat;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class Controller {
private Modell user1;
private View view;
private View_Hauptfenster h1 = new View_Hauptfenster();
private String name;
private String password;
Controller(Modell user, View view){
this.user1 = user;
this.view = view;
}
public boolean logIn() {
view.getLogIn().addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
name = view.getNameEingabe();
password = view.getPasswordEingabe();
user1 = new Modell(name,password);
view.zeigeUserInfos();
view.schließeLoginFenster();
zeigeHauptfenster();
}
});
return true;
}
public void zeigeHauptfenster() {
h1.zeigeBegrüße(user1.getName());
h1.setVisible(true);
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public Modell getUser1() {
return user1;
}
}

View File

@ -0,0 +1,54 @@
package GUIAnwendungen.Meine_GUI_Chat;
public class Modell {
private String name;
private int kontostand;
private int id;
private String password;
private static int ID = 100;
public Modell() {}
public Modell(String name, String password) {
this.name = name;
this.kontostand = 0;
this.password = password;
this.id = ++ID;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getKontostand() {
return kontostand;
}
public void setKontostand(int kontostand) {
this.kontostand = kontostand;
}
//set ID ist nicht erlaubt
public int getId() {
return id;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public String toString() {
return "[name=" + name + ", Kontostand=" + kontostand + ", id=" + id + ", password=" + password + "]";
}
}

View File

@ -0,0 +1,13 @@
package GUIAnwendungen.Meine_GUI_Chat;
public class Test {
public static void main(String[] args) {
View user1View = new View();
Modell user1 = new Modell();
Controller controller = new Controller(user1,user1View);
controller.logIn();
}
}

View File

@ -0,0 +1,70 @@
package GUIAnwendungen.Meine_GUI_Chat;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
public class View extends JFrame {
private JLabel title = new JLabel("Log in: ");
private JLabel userName = new JLabel("Name: ");
private JTextField nameEingabe = new JTextField();
private JLabel password = new JLabel("Password: ");
private JPasswordField passwordEingabe = new JPasswordField();
private JButton logIn = new JButton("Log in");
//(int x, int y, int width, int height)
public View() {
this.setTitle("Log in");
this.setVisible(true);
this.setSize(900, 650);
this.setLayout(null);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
title.setBounds(10,20,120,20);
userName.setBounds(10,50,100,20);
nameEingabe.setBounds(140,50,140,20);
password.setBounds(10,80,100,20);
passwordEingabe.setBounds(140,80,140,20);
logIn.setBounds(10,110,100,20);
this.add(title);
this.add(userName);
this.add(nameEingabe);
this.add(password);
this.add(passwordEingabe);
this.add(logIn);
}
public void zeigeUserInfos() {
JOptionPane.showMessageDialog(null, "Deine Log in war erfolgreich", "Log in Erfolgreich", JOptionPane.INFORMATION_MESSAGE);
}
public String getNameEingabe() {
return nameEingabe.getText();
}
public String getPasswordEingabe() {
return new String(passwordEingabe.getPassword());
}
public JButton getLogIn() {
return logIn;
}
public void schließeLoginFenster() {
this.dispose(); // Schließt das aktuelle Fenster
}
}

View File

@ -0,0 +1,36 @@
package GUIAnwendungen.Meine_GUI_Chat;
import java.awt.Color;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class View_Hauptfenster extends JFrame{
private JPanel panel = new JPanel();
private JLabel begrüsse = new JLabel();
public View_Hauptfenster() {
panel.setBackground(Color.gray);
panel.setBounds(10, 10, 300, 300);
begrüsse.setBounds(10,10,100,30);
panel.add(begrüsse);
this.setTitle("Das Hauptfenster");
this.setVisible(false);
this.setLayout(null);
this.setSize(700, 700);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.add(panel);
}
public void zeigeBegrüße(String name) {
begrüsse.setText("Willkommen " + name);
}
public static void main(String[]args) {
View_Hauptfenster test = new View_Hauptfenster();
}
}

View File

@ -0,0 +1,71 @@
package Thread;
import java.util.Scanner; // Scanner هنا قمنا باستدعاء الكلاس
public class Main {
public static void main(String[] args) {
// و الذي سنستخدمه لإدخال بيانات من المستخدم input إسمه Scanner هنا قمنا بإنشاء كائن من الكلاس
Scanner input = new Scanner(System.in);
// et إسمه ExamTimer هنا قمنا بإنشاء كائن من الكلاس
ExamTimer et = new ExamTimer();
int num1; // سنستخدم هذا المتغير لتخزين أول رقم عشوائي يظهر في عملية الجمع
int num2; // سنستخدم هذا المتغير لتخزين ثاني رقم عشوائي يظهر في عملية الجمع
int userAnswer; // سنستخدم هذا المتغير لتخزين العدد الذي سيدخله المستخدم للإجابة على عمليأت الجمع
int operationsCounter = 0; // سنخزن عدد العمليات الحسابية التي ستظهر عند تشغيل البرنامج فيه
int correctAnswersCounter = 0; // سنخزن عدد الإجابات الصحيحة في هذا المتغير
int wrongAnswersCounter = 0; // سنخزن عدد الإجابات الخطئ من ي هذا المتغير
// الأمر الذي سيجعله في حالة إنتظار مدة 20 ثانية فقط و بعدها سيتوقف كلياً et هنا قمنا بتشغيل الكائن
et.start();
System.out.println("---------- Quiz ---------");
// طالما أن مدة العشرين ثانية لم تنقضي بعد سيستمر في تنفيذ الأوامر الموجودة في هذه الحلقة
while(et.isAlive())
{
num1 = (int)(Math.random()*10); // num1 سيتم تخزين رقم عشوائي بين 1 و 9 في المتغير
num2 = (int)(Math.random()*10); // num2 سيتم تخزين رقم عشوائي بين 1 و 9 في المتغير
System.out.print(num1+" + "+num2+" = "); // num2 و num1 هنا سيطلب من المستخدم معرفة ناتج جمع العددين
userAnswer = input.nextInt(); // هنا سيتم إنتظار المستخدم لإدخال الجواب
if(userAnswer == num1+num2) // إذا كانت إجابته صحيحة, سيتم إضافة عدد الإجابات الصحيحة واحداً
correctAnswersCounter++;
else // إذا كانت إجابته خاطئة, سيتم إضافة عدد الإجابات الخطأ واحداً
wrongAnswersCounter++;
operationsCounter++; // في الأخير سيتم إضافة عدد عمليات الجمع واحداً
}
System.out.println("Time end..\n");
// بعد إنتهاء مدة العشرين ثانية سيتم طباعة عدد عمليات الجمع, عدد الأجوبة الصحيحة و عدد الأجوبة الخاطئة
System.out.println("--------- Result --------");
System.out.println("Number of operations: " +operationsCounter);
System.out.println("Number of correct answers: " +correctAnswersCounter);
System.out.println("Number of wrong answers: " +wrongAnswersCounter);
}
}
class ExamTimer extends Thread {
@Override
public void run() {
// لثانية واحدة Thread بعدها سيتم إيقاف كائن الـ
try {
Thread.sleep(1000);
}
catch(Exception e) {
System.out.println(e.getMessage());
}
}
}

View File

@ -7,6 +7,17 @@ package Thread;
* Ändere die Priority nur, wenn ein Thread wichtiger ist.
* - Standardmäßig hat jeder neu erstellte Thread eine Priority von 5,
* um eine faire parallele Ausführung zu gewährleisten.
*
* - Unterschied zwischen den Methoden run() und start():
* . run(): Direkter Aufruf also Das bedeutet, dass kein neuer Thread gestartet wird.
* Kein Multithreading: Da kein neuer Thread gestartet wird, findet keine parallele Ausführung statt.
*
* .start(): Neuen Thread starten: Der Aufruf der start()-Methode bewirkt, dass ein neuer Thread erzeugt wird,
* und der Code innerhalb der run()-Methode wird in diesem neuen Thread ausgeführt
* .Multithreading: Die start()-Methode führt tatsächlich zu Multithreading,
* weil sie den neuen Thread in den "Runnable" Zustand versetzt und schließlich die run()-Methode in diesem separaten Thread ausgeführt wird.
*
*
*/
public class ThreadBeispiel {
@ -18,6 +29,7 @@ public class ThreadBeispiel {
}, "MeinThread");
// Starten des Threads
myThread.run();
myThread.start();
// Abrufen der eindeutigen Thread-ID und des Thread-Namens

View File

@ -5,6 +5,8 @@ public class Whatsapp {
private String name;
private String teleN;
private String nachricht;
private static int ID = 100;
private int id;
private ArrayList <String> speicherContact;
private ArrayList <String> speicherNummern;
private ArrayList <String> blockContact;
@ -18,6 +20,7 @@ public class Whatsapp {
speicherContact.add(this.name);
this.speicherNummern = new ArrayList<>();
speicherNummern.add(teleN);
this.id = ++ID;
}

View File

@ -5,37 +5,7 @@ public class WhatsappTest {
public static void main(String[] args) {
Whatsapp obai = new Whatsapp("obai", "049321384324");
Whatsapp omar = new Whatsapp("omar", "049321384324");
Whatsapp abd = new Whatsapp("abd", "049321321");
Whatsapp oula = new Whatsapp("oula", "049321321");
Nachrichten messages = new Nachrichten(obai,omar);
messages.sendMessage(obai, omar, "Hallo omar");
messages.sendMessage(omar, obai, "Hallo obai");
messages.sendMessage(omar, obai, "was machst du?");
messages.printsaveMessages();
omar.blocKontakt(obai);
messages.sendMessage(omar, obai, "was machst du?");
messages.printsaveMessages();
// Groups gr1 = new Groups(obai,"Almidani");
// gr1.addMembers(omar);
// gr1.addMembers(abd);
//
// obai.addContact("abd","004848214");
// obai.addContact("omar","004848214");
// gr1.addAdmin(obai, omar);
// gr1.printaddmembers(obai);
// System.out.println();
// System.out.println();
// System.out.println();
// gr1.printaddmembers(omar);
// gr1.sendeMessages(abd, "Hallo Omar");
// gr1.sendeMessages(omar, "Hallo Abd");
//
//
// gr1.printallMessages();
System.out.println(obai.toString());
}
}