diff --git a/Programmierung2/src/GUIAnwendungen/Beispiele/ButtonBeispiel.java b/Programmierung2/src/GUIAnwendungen/Beispiele/ButtonBeispiel.java new file mode 100644 index 0000000..1899f87 --- /dev/null +++ b/Programmierung2/src/GUIAnwendungen/Beispiele/ButtonBeispiel.java @@ -0,0 +1,46 @@ +package GUIAnwendungen.Beispiele; + +import javax.swing.JFrame; +import javax.swing.JButton; +import javax.swing.JLabel; +import java.awt.FlowLayout; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; + +public class ButtonBeispiel { + + static JFrame frame = new JFrame("JButton demo"); // أي قمنا بإنشاء نافذة مع وضع عنوان لها JFrame هنا أنشأنا كائن من الكلاس + static JButton plus_button = new JButton("+1"); // plus_button إسمه Button هنا أنشأنا + static JButton minus_button = new JButton("-1"); // minus_button إسمه Button هنا أنشأنا + static JLabel label = new JLabel("0"); // label إسمه Label هنا أنشأنا + + static int counter = 0; // سنستخدم هذه المتغير كعداد + + public static void main(String[] args) { + + plus_button.addActionListener(new ActionListener() { // plus_button هنا نضع الأوامر التي نريد تنفيذها عند النقر على الزر + @Override + public void actionPerformed(ActionEvent e) { + label.setText("" + (++counter)); // plus_button عند النقر على الـ label واحداً ثم توضع كنص للـ counter ستزيد قيمة المتغير + } + }); + + minus_button.addActionListener(new ActionListener() { // minus_button هنا نضع الأوامر التي نريد تنفيذها عند النقر على الزر + @Override + public void actionPerformed(ActionEvent e) { + label.setText("" + (--counter)); // minus_button عند النقر على الـ label واحداً ثم توضع كنص للـ counter ستنقص قيمة المتغير + } + }); + + frame.add(minus_button); // frame في الـ minus_button هنا أضفنا الـ + frame.add(label); // frame في الـ label هنا أضفنا الـ + frame.add(plus_button); // frame في الـ plus_button هنا أضفنا الـ + + frame.setSize(300, 80); // هنا قمنا بتحديد حجم النافذة. عرضها 300 و طولها 80 + frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // هنا جعلنا زر الخروج من النافذة يغلق البرنامج + frame.setLayout(new FlowLayout()); // حتى نجعل الأشياء التي نضيفها في النافذة تترب وراء بعضها و في وسط النافذة FlowLayout إستخدمنا الـ + frame.setVisible(true); // هنا جعلنا النافذة مرئية + + } + +} \ No newline at end of file diff --git a/Programmierung2/src/GUIAnwendungen/Beispiele/PasswordBeispiel.java b/Programmierung2/src/GUIAnwendungen/Beispiele/PasswordBeispiel.java new file mode 100644 index 0000000..2524524 --- /dev/null +++ b/Programmierung2/src/GUIAnwendungen/Beispiele/PasswordBeispiel.java @@ -0,0 +1,66 @@ +package GUIAnwendungen.Beispiele; + +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.JPasswordField; +import javax.swing.JTextField; + +public class PasswordBeispiel { + + static JFrame frame = new JFrame("JTextField demo"); // أي قمنا بإنشاء نافذة مع وضع عنوان لها JFrame هنا أنشأنا كائن من الكلاس + + static JLabel name = new JLabel("Name"); // name إسمه Label هنا أنشأنا + static JTextField name_data = new JTextField(); // name_data إسمه Text Field هنا أنشأنا + + static JLabel pass = new JLabel("Password"); // pass إسمه Label هنا أنشأنا + static JPasswordField pass_data = new JPasswordField(); // pass_data إسمه Password Field هنا أنشأنا + + static JButton display_info = new JButton("Display user info"); // button إسمه Button هنا أنشأنا + static JLabel user_info = new JLabel(); // فارغ labelResult إسمه Label هنا أنشأنا + + + public static void main(String[] args) { + + name.setBounds(40, 40, 100, 30); // frame في الـ label هنا قمنا بتحديد حجم و موقع الكائن + name_data.setBounds(150, 40, 150, 30); // frame في الـ textField هنا قمنا بتحديد حجم و موقع الكائن + + pass.setBounds(40, 100, 100, 30); // frame في الـ label هنا قمنا بتحديد حجم و موقع الكائن + pass_data.setBounds(150, 100, 150, 30); // frame في الـ textField هنا قمنا بتحديد حجم و موقع الكائن + + display_info.setBounds(150, 160, 150, 30); // frame في الـ button هنا قمنا بتحديد حجم و موقع الكائن + user_info.setBounds(150, 220, 300, 30); // frame في الـ labelResult هنا قمنا بتحديد حجم و موقع الكائن + + frame.add(name); // frame في الـ label هنا أضفنا الكائن + frame.add(name_data); // frame في الـ label هنا أضفنا الكائن + frame.add(pass); // frame في الـ label هنا أضفنا الكائن + frame.add(pass_data); // frame في الـ label هنا أضفنا الكائن + frame.add(display_info); // frame في الـ label هنا أضفنا الكائن + frame.add(user_info); // frame في الـ label هنا أضفنا الكائن + + frame.setSize(460, 340); // هنا قمنا بتحديد حجم النافذة. عرضها 360 و طولها 250 + frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // هنا جعلنا زر الخروج من النافذة يغلق البرنامج + frame.setLayout(null); // لذلك قمنا بتحديد مكان كل شيء قمنا بإضافته في النافذة Layout Manager أي لم نستخدم أي null هنا وضعنا + frame.setVisible(true); // هنا جعلنا النافذة مرئية + + // display_info هنا نضع الأوامر التي نريد تنفيذها عند النقر على الزر + display_info.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + + // name و تخزينه في المتغير name_data سيتم جلب النص الذي سيدخله المستخدم في الـ + String name = name_data.getText(); + + // pass و تحويله إلى نص ثم تخزينه في المتغير pass_data سيتم جلب النص الذي سيدخله المستخدم في الـ + String pass = new String(pass_data.getPassword()); + + // user_info كنص للكائن pass و name بعدها سيتم وضع قيم المتغيراتـ + user_info.setText("Name: "+ name +" Password: "+pass); + } + }); + + } + +} \ No newline at end of file diff --git a/Programmierung2/src/GUIAnwendungen/Beispiele/TextAreaBeispiel.java b/Programmierung2/src/GUIAnwendungen/Beispiele/TextAreaBeispiel.java new file mode 100644 index 0000000..bd907f9 --- /dev/null +++ b/Programmierung2/src/GUIAnwendungen/Beispiele/TextAreaBeispiel.java @@ -0,0 +1,49 @@ +package GUIAnwendungen.Beispiele; + +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.JTextArea; +import javax.swing.JScrollPane; + +public class TextAreaBeispiel { + + static JFrame frame = new JFrame("JTextArea demo"); // أي قمنا بإنشاء نافذة مع وضع عنوان لها JFrame هنا أنشأنا كائن من الكلاس + static JTextArea textArea = new JTextArea(); // textArea إسمه Text Area هنا أنشأنا + static JScrollPane scrollPane = new JScrollPane(textArea); // بداخله textArea و وضعنا الـ Scroll Pane أي قمنا بإنشاء JScrollPane هنا أنشأنا كائن من الكلاس + static JLabel label = new JLabel("Enter any thing"); // label إسمه Label هنا أنشأنا + static JLabel labelResult = new JLabel(); // فارغ labelResult إسمه Label هنا أنشأنا + static JButton button = new JButton("Get text"); // button إسمه Button هنا أنشأنا + + public static void main(String[] args) { + + label.setBounds(40, 40, 100, 30); // frame في الـ label هنا قمنا بتحديد حجم و موقع الكائن + scrollPane.setBounds(150, 40, 200, 100); // frame في الـ scrollPane هنا قمنا بتحديد حجم و موقع الكائن + button.setBounds(40, 160, 80, 30); // frame في الـ button هنا قمنا بتحديد حجم و موقع الكائن + labelResult.setBounds(40, 200, 340, 30); // frame في الـ labelResult هنا قمنا بتحديد حجم و موقع الكائن + + textArea.setLineWrap(true); // ينزل على سطر جديد في حال كان عدد الأحرف المدخلة أكبر من عدد الأحرف التي يستطيع السطر إستيعابها textArea هنا جعلنا النص الذي ندخله في كائن الـ + textArea.setWrapStyleWord(true); // هنا جعلنا الكلمة تظهر على سطر جديد في حال كانت لا تسع في السطر + + frame.add(label); // frame في الـ label هنا أضفنا الكائن + frame.add(scrollPane); // frame في الـ scrollPane هنا أضفنا الكائن + frame.add(button); // frame في الـ button هنا أضفنا الكائن + frame.add(labelResult); // frame في الـ labelResult هنا أضفنا الكائن + + frame.setSize(400, 300); // هنا قمنا بتحديد حجم النافذة. عرضها 400 و طولها 300 + frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // هنا جعلنا زر الخروج من النافذة يغلق البرنامج + frame.setLayout(null); // لذلك قمنا بتحديد مكان كل شيء قمنا بإضافته في النافذة Layout Manager أي لم نستخدم أي null هنا وضعنا + frame.setVisible(true); // هنا جعلنا النافذة مرئية + + button.addActionListener(new ActionListener() { // button هنا نضع الأوامر التي نريد تنفيذها عند النقر على الزر + @Override + public void actionPerformed(ActionEvent e) { + labelResult.setText(textArea.getText()); // button عند النقر على الـ label و وضعه كنص للكائن textArea سيتم جلب النص الموجود في الكائن + } + }); + + } + +} \ No newline at end of file diff --git a/Programmierung2/src/GUIAnwendungen/Beispiele/TextAreaBeispiel2.java b/Programmierung2/src/GUIAnwendungen/Beispiele/TextAreaBeispiel2.java new file mode 100644 index 0000000..c8d1a0b --- /dev/null +++ b/Programmierung2/src/GUIAnwendungen/Beispiele/TextAreaBeispiel2.java @@ -0,0 +1,62 @@ +package GUIAnwendungen.Beispiele; + +import java.awt.event.KeyEvent; +import java.awt.event.KeyListener; +import javax.swing.JFrame; +import javax.swing.JLabel; +import javax.swing.JTextArea; +import javax.swing.JScrollPane; + +public class TextAreaBeispiel2 { + + static JFrame frame = new JFrame("JTextArea demo"); // أي قمنا بإنشاء نافذة مع وضع عنوان لها JFrame هنا أنشأنا كائن من الكلاس + static JTextArea textArea = new JTextArea(); // textArea إسمه Text Area هنا أنشأنا + static JScrollPane scrollPane = new JScrollPane(textArea); // بداخله textArea و وضعنا الـ Scroll Pane أي قمنا بإنشاء JScrollPane هنا أنشأنا كائن من الكلاس + static JLabel chars = new JLabel("Chars: 0"); // و الذي سنستخدمه لعرض عدد الأحرف chars فارغ إسمه Label هنا أنشأنا + static JLabel lines = new JLabel("Lines: 0"); // و الذي سنستخدمه لعرض عدد الأسطر lines فارغ إسمه Label هنا أنشأنا + + public static void main(String[] args) { + + scrollPane.setBounds(40, 40, 310, 150); // frame في الـ scrollPane هنا قمنا بتحديد حجم و موقع الكائن + + chars.setBounds(40, 210, 70, 30); // frame في الـ chars هنا قمنا بتحديد حجم و موقع الكائن + lines.setBounds(160, 210, 70, 30); // frame في الـ lines هنا قمنا بتحديد حجم و موقع الكائن + + textArea.setLineWrap(true); // ينزل على سطر جديد في حال كان عدد الأحرف المدخلة أكبر من عدد الأحرف التي يستطيع السطر إستيعابها textArea هنا جعلنا النص الذي ندخله في كائن الـ + textArea.setWrapStyleWord(true); // هنا جعلنا الكلمة تظهر على سطر جديد في حال كانت لا تسع في السطر + + frame.add(scrollPane); // frame في الـ scrollPane هنا أضفنا الكائن + frame.add(chars); // frame في الـ chars هنا أضفنا الكائن + frame.add(lines); // frame في الـ lines هنا أضفنا الكائن + + frame.setSize(400, 300); // هنا قمنا بتحديد حجم النافذة. عرضها 400 و طولها 300 + frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // هنا جعلنا زر الخروج من النافذة يغلق البرنامج + frame.setLayout(null); // لذلك قمنا بتحديد مكان كل شيء قمنا بإضافته في النافذة Layout Manager أي لم نستخدم أي null هنا وضعنا + frame.setVisible(true); // هنا جعلنا النافذة مرئية + + + // textArea يتم إستدعاء هذه الدالة بشكل تلقائي كلما تم إدخال أو حذف حرف في كائن الـ + textArea.addKeyListener(new KeyListener() { + + // Override لسنا بحاجة هذه الدالة لكننا مجبرين على أن نفعل لها + // يتم تنفيذ أي أوامر نضعها هنا مباشرةً عندما يقوم المستخدم بالنقر على أي حرف من لوحة المفاتيح و قبل أن يرفع إصبعه + @Override + public void keyTyped(KeyEvent ke) { } + + // Override لسنا بحاجة هذه الدالة لكننا مجبرين على أن نفعل لها + // يتم تنفيذ أي أوامر نضعها هنا في حال أبقى المستخدم إصبعه على زر معين مما جعل هذا الزر يطبع الحرف أكثر من مرة + @Override + public void keyPressed(KeyEvent ke) { } + + // يتم تنفيذ أي أوامر نضعها هنا بعد أن يتم كتابة الحرف الذي قام المستخدم بالنقر عليه من لوحة المفاتيح. أو عندما يرفع إصبعه عن أي زر + @Override + public void keyReleased(KeyEvent ke) { + chars.setText("Chars: " + textArea.getText().length()); // chars كنص للكائن JTextArea هنا وضعنا عدد أحرف الكائن + lines.setText("Lines: " + textArea.getLineCount()); // lines كنص للكائن JTextArea هنا وضعنا عدد أسطر الكائن + } + + }); + + } + +} \ No newline at end of file diff --git a/Programmierung2/src/GUIAnwendungen/Beispiele/TextEingabenBeispiel.java b/Programmierung2/src/GUIAnwendungen/Beispiele/TextEingabenBeispiel.java new file mode 100644 index 0000000..7fa5fa4 --- /dev/null +++ b/Programmierung2/src/GUIAnwendungen/Beispiele/TextEingabenBeispiel.java @@ -0,0 +1,44 @@ +package GUIAnwendungen.Beispiele; + +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.JTextField; + +public class TextEingabenBeispiel { + + static JFrame frame = new JFrame("JTextField demo"); // أي قمنا بإنشاء نافذة مع وضع عنوان لها JFrame هنا أنشأنا كائن من الكلاس + static JTextField textField = new JTextField(); // textField إسمه Text Field هنا أنشأنا + static JLabel label = new JLabel("Enter any thing"); // label إسمه Label هنا أنشأنا + static JLabel labelResult = new JLabel(); // فارغ labelResult إسمه Label هنا أنشأنا + static JButton button = new JButton("Get text"); // button إسمه Button هنا أنشأنا + + public static void main(String[] args) { + + label.setBounds(40, 40, 100, 30); // frame في الـ label هنا قمنا بتحديد حجم و موقع الكائن + textField.setBounds(150, 40, 150, 30); // frame في الـ textField هنا قمنا بتحديد حجم و موقع الكائن + button.setBounds(40, 120, 80, 30); // frame في الـ button هنا قمنا بتحديد حجم و موقع الكائن + labelResult.setBounds(150, 120, 150, 30); // frame في الـ labelResult هنا قمنا بتحديد حجم و موقع الكائن + + frame.add(label); // frame في الـ label هنا أضفنا الكائن + frame.add(textField); // frame في الـ textField هنا أضفنا الكائن + frame.add(button); // frame في الـ button هنا أضفنا الكائن + frame.add(labelResult); // frame في الـ labelResult هنا أضفنا الكائن + + frame.setSize(360, 250); // هنا قمنا بتحديد حجم النافذة. عرضها 360 و طولها 250 + frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // هنا جعلنا زر الخروج من النافذة يغلق البرنامج + frame.setLayout(null); // لذلك قمنا بتحديد مكان كل شيء قمنا بإضافته في النافذة Layout Manager أي لم نستخدم أي null هنا وضعنا + frame.setVisible(true); // هنا جعلنا النافذة مرئية + + button.addActionListener(new ActionListener() { // button هنا نضع الأوامر التي نريد تنفيذها عند النقر على الزر + @Override + public void actionPerformed(ActionEvent e) { + labelResult.setText(textField.getText()); // button عند النقر على الـ label و وضعه كنص للكائن textField سيتم جلب النص الموجود في الكائن + } + }); + + } + +} \ No newline at end of file diff --git a/Programmierung2/src/GUIAnwendungen/Beispiele/TextEingabenBeispiel2.java b/Programmierung2/src/GUIAnwendungen/Beispiele/TextEingabenBeispiel2.java new file mode 100644 index 0000000..155a960 --- /dev/null +++ b/Programmierung2/src/GUIAnwendungen/Beispiele/TextEingabenBeispiel2.java @@ -0,0 +1,63 @@ +package GUIAnwendungen.Beispiele; + +import java.awt.Color; +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.JTextField; + +public class TextEingabenBeispiel2 { + + static JLabel label_plus = new JLabel("+"); // label_plus إسمه Label هنا أنشأنا + static JLabel label_result = new JLabel(); // فارغ label_result إسمه Label هنا أنشأنا + static JFrame frame = new JFrame("JTextField demo"); // أي قمنا بإنشاء نافذة مع وضع عنوان لها JFrame هنا أنشأنا كائن من الكلاس + static JTextField text_field_1 = new JTextField(); // text_field_1 إسمه Text Field هنا أنشأنا + static JTextField text_field_2 = new JTextField(); // text_field_2 إسمه Text Field هنا أنشأنا + static JButton button = new JButton("="); // button إسمه Button هنا أنشأنا + + public static void main(String[] args) { + + label_plus.setBounds(135, 40, 50, 30); // frame في الـ label هنا قمنا بتحديد حجم و موقع الكائن + label_result.setBounds(340, 40, 90, 30); // frame في الـ label هنا قمنا بتحديد حجم و موقع الكائن + text_field_1.setBounds(40, 40, 80, 30); // frame في الـ textField هنا قمنا بتحديد حجم و موقع الكائن + text_field_2.setBounds(160, 40, 80, 30); // frame في الـ textField هنا قمنا بتحديد حجم و موقع الكائن + button.setBounds(270,40, 50, 30); // frame في الـ button هنا قمنا بتحديد حجم و موقع الكائن + + frame.add(label_plus); // frame في الـ label_plus هنا أضفنا الكائن + frame.add(label_result); // frame في الـ label_result هنا أضفنا الكائن + frame.add(text_field_1); // frame في الـ text_field_1 هنا أضفنا الكائن + frame.add(text_field_2); // frame في الـ text_field_2 هنا أضفنا الكائن + frame.add(button); // frame في الـ button هنا أضفنا الكائن + + frame.setSize(500, 140); // هنا قمنا بتحديد حجم النافذة. عرضها 500 و طولها 140 + frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // هنا جعلنا زر الخروج من النافذة يغلق البرنامج + frame.setLayout(null); // لذلك قمنا بتحديد مكان كل شيء قمنا بإضافته في النافذة Layout Manager أي لم نستخدم أي null هنا وضعنا + frame.setVisible(true); // هنا جعلنا النافذة مرئية + + // button هنا نضع الأوامر التي نريد تنفيذها عند النقر على الزر + button.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + try { + // num_2 و num_1 و تخزينهم في المتغيرات text_field_2 و الـ text_field_1 أولاً سيتم جلب الأرقام التي سيدخلها المستخدم في الـ + double num_1 = Double.valueOf(text_field_1.getText()); + double num_2 = Double.valueOf(text_field_2.getText()); + + // label_result في حال قام المستخدم بإدخال أرقام, سيتم جمعهم ثم سيوضع الناتج كنص مكان المتغير + label_result.setForeground(Color.black); + label_result.setText("" + (num_1+num_2)); + } + catch(Exception ex) + { + // label_result في حال لم يقم المستخدم بإدخال أرقام, سيتم عرض النص التالي و تلوينه بالأحمر + label_result.setForeground(Color.red); + label_result.setText("خطأ في الإدخال !"); + } + } + }); + + } + +} \ No newline at end of file diff --git a/Programmierung2/src/GUIAnwendungen/DatumAnzeigen.java b/Programmierung2/src/GUIAnwendungen/DatumAnzeigen.java new file mode 100644 index 0000000..bfc0aa6 --- /dev/null +++ b/Programmierung2/src/GUIAnwendungen/DatumAnzeigen.java @@ -0,0 +1,60 @@ +package GUIAnwendungen; + +import java.awt.Color; +import javax.swing.JFrame; +import javax.swing.JLabel; +import java.awt.FlowLayout; +import java.awt.Font; +import java.util.Date; +import java.text.SimpleDateFormat; + +public class DatumAnzeigen implements Runnable { + + static JLabel timeLabel = new JLabel(); + + @Override + public void run() { + + while(!Thread.currentThread().isInterrupted()) // ( شغال Thread أي طالما أن الـ ) true لا ترجع isInterrupted() طالما أن الدالة + { + + Date date = new Date(); + SimpleDateFormat sdf = new SimpleDateFormat("hh:mm:ss a"); + + timeLabel.setText(sdf.format(date)); // كل ثانية timeLabel سيتم وضع الوقت الحالي كنص للكائن + + try { + Thread.sleep(1000); + } + catch(Exception e) { + timeLabel.setText(e.getMessage()); // timeLabel في حال حدث أي خطأ سيتم وضعه كنص للكائن + timeLabel.setForeground(Color.red); // و سيتم تلوينه باللون الأحمر + } + } + + } + + + public static void main(String[] args) { + + JFrame frame = new JFrame("Display Time"); // أي قمنا بإنشاء نافذة مع وضع عنوان لها JFrame هنا أنشأنا كائن من الكلاس + frame.setSize(350, 70); // هنا قمنا بتحديد حجم النافذة. عرضها 350 و طولها 70 + frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // هنا جعلنا زر الخروج من النافذة يغلق البرنامج + frame.setLayout(new FlowLayout()); // حتى نجعل الأشياء التي نضيفها في النافذة تترب وراء بعضها و في وسط النافذة FlowLayout إستخدمنا الـ + + Font newFont = new Font("Arial", Font.BOLD, 20); // حجمه 20 Arial يمثل نوع خط عريض إسمه Font هنا أنشأنا كائن من الكلاس + + timeLabel.setFont(newFont); // newFont يستخدم الـ TimeLabel هنا جعلنا الـ + timeLabel.setForeground(Color.blue); // إلى اللون الأزرق TimeLabel هنا قمنا بتغيير لون الـ + + frame.add(timeLabel); // frame في الـ TimeLabel هنا أضفنا الـ + + frame.setVisible(true); // هنا جعلنا النافذة مرئية + + Thread t = new Thread(new DatumAnzeigen()); // Runnable نفسه لأنه يطبق الإنترفيس Main() مبني على كائن من الكلاس Thread هنا قمنا بإنشاء كائن من الكلاس + + t.start(); // و التي بدورها ستعرض لنا الوقت كل ثانية run() أي سيتم إستدعاء الدالة thread هنا قمنا بتشغيل كائن الـ + + } + +} \ No newline at end of file diff --git a/Programmierung2/src/GUIAnwendungen/Jframe.java b/Programmierung2/src/GUIAnwendungen/Jframe.java index 6ab865c..16ef458 100644 --- a/Programmierung2/src/GUIAnwendungen/Jframe.java +++ b/Programmierung2/src/GUIAnwendungen/Jframe.java @@ -8,6 +8,8 @@ public class Jframe { /* * - mit der Klasse(JFrame) erzeugen wir ein Fenster + * . entweder erstellen wir ein Objekt der Klasse JFrame: JFrame frame = new JFrame(); + * . oder in dem Wir die Kalsse JFrame erben: also myKlasse extends JFrame */ public static void main(String[] args) { @@ -15,7 +17,7 @@ public class Jframe { // Erstelle ein Fenster JFrame frame = new JFrame(); - //setVisible(boolean): gibt an, ob mein Fenster sichtbar ist oder nicht + //setVisible(boolean): soll immer geschrieben werden, weil sie ist default false frame.setVisible(true); //setSize(width, height) diff --git a/Programmierung2/src/GUIAnwendungen/Jpassword.java b/Programmierung2/src/GUIAnwendungen/Jpassword.java new file mode 100644 index 0000000..cb65f5f --- /dev/null +++ b/Programmierung2/src/GUIAnwendungen/Jpassword.java @@ -0,0 +1,34 @@ +package GUIAnwendungen; + +import javax.swing.JFrame; +import javax.swing.JPasswordField; +public class Jpassword { + /* + * - wird verwendet, um ein spezielles Texteingabefeld für Passwörter (Password Field) zur Benutzeroberfläche hinzuzufügen. + * - Sie verbirgt die Zeichen, die der Benutzer eingibt. + * + * Methode: + * - public char[] getPassword(): Gibt password als charArray zurück + */ + + public static void main(String[] args) { + JFrame frame = new JFrame("JPasswordField demo"); // أي قمنا بإنشاء نافذة مع وضع عنوان لها JFrame هنا أنشأنا كائن من الكلاس + frame.setSize(300, 250); // هنا قمنا بتحديد حجم النافذة. عرضها 300 و طولها 250 + frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // هنا جعلنا زر الخروج من النافذة يغلق البرنامج + frame.setLayout(null); // في النافذة بنفسنا Password Field لذلك سنقوم بتحديد مكان الـ Layout Manager أي لم نستخدم أي null هنا وضعنا + + JPasswordField passwordField = new JPasswordField(); // Password Field أي قمنا بإنشاء JPasswordField هنا أنشأنا كائن من الكلاس + passwordField.setBounds(40, 40, 200, 30); // frame في الـ Password Field هنا قمنا بتحديد حجم و موقع الـ + + // ändert die Staren als ? + passwordField.setEchoChar('?'); + + // zeigt das Password beim Schreiben + passwordField.setEchoChar('\0'); + frame.add(passwordField); // frame في الـ Password Field هنا أضفنا الـ + + frame.setVisible(true); + + } + +} diff --git a/Programmierung2/src/GUIAnwendungen/JtextArea.java b/Programmierung2/src/GUIAnwendungen/JtextArea.java new file mode 100644 index 0000000..1aefeb0 --- /dev/null +++ b/Programmierung2/src/GUIAnwendungen/JtextArea.java @@ -0,0 +1,32 @@ +package GUIAnwendungen; +import javax.swing.JFrame; +import javax.swing.JTextArea; +import java.awt.Font; + +public class JtextArea { + /* + * - wird verwendet, um ein großes Texteingabefeld, das aus mehreren Zeilen besteht (Text Area) + * , zur Benutzeroberfläche hinzuzufügen. + */ + + + public static void main(String[] args) { + + JFrame frame = new JFrame("JTextArea demo"); // Hier haben wir ein Objekt der Klasse JFrame erstellt, also ein Fenster, und ihm einen Titel gegeben. + frame.setSize(300, 250); // Hier haben wir die Größe des Fensters festgelegt: 300 Breite und 250 Höhe. + frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // Hier haben wir festgelegt, dass das Programm beendet wird, wenn die Schließen-Schaltfläche des Fensters gedrückt wird. + frame.setLayout(null); // Hier haben wir keinen Layout-Manager verwendet, daher legen wir die Position des Textbereichs (Text Area) manuell fest. + + Font newFont = new Font("Arial", Font.BOLD, 16); + + JTextArea textArea = new JTextArea("Enter anything"); // Hier haben wir ein Objekt der Klasse JTextArea erstellt, also einen Textbereich (Text Area). + textArea.setBounds(40, 40, 200, 100); // Hier haben wir die Größe und Position des Textbereichs im Fenster festgelegt. + + + frame.add(textArea); // Hier haben wir den Textbereich dem Fenster hinzugefügt. + + frame.setVisible(true); // Hier haben wir das Fenster sichtbar gemacht. + + } + +} diff --git a/Programmierung2/src/GUIAnwendungen/Labels.java b/Programmierung2/src/GUIAnwendungen/Labels.java index 1c4b1aa..0b7f06b 100644 --- a/Programmierung2/src/GUIAnwendungen/Labels.java +++ b/Programmierung2/src/GUIAnwendungen/Labels.java @@ -1,6 +1,12 @@ package GUIAnwendungen; import java.awt.Color; +import java.awt.Color; +import javax.swing.JFrame; +import javax.swing.JLabel; +import java.awt.FlowLayout; +import java.awt.Font; +import java.text.SimpleDateFormat; import java.awt.Font; import javax.swing.BorderFactory; @@ -14,6 +20,8 @@ import javax.swing.border.Border; */ public class Labels { + + public static void main(String[] args) { // Erstelle eine Label @@ -25,6 +33,7 @@ public class Labels { // füge den Text auf dem Fenster hinzu label.setText("Hall Welt"); + /* * - Mit diesen zwei Methode positioniere ich den Text auf dem Bild * 1. setHorizontalTextPosition(JLabel.CENTER); set Text LEFT,CENTER,RIGHT auf dem Bild @@ -52,13 +61,13 @@ public class Labels { //zeige den Border auf dem Fenster label.setBorder(b1); - + //füge ein Bild hinzu ImageIcon image = new ImageIcon("C:\\Users\\obaya\\eclipse-workspace\\OOP\\src\\GUIAnwendungen\\Test.jpg"); label.setIcon(image); - + // Erstelle ein Fenster JFrame frame = new JFrame(); // setSize(width, height) @@ -71,13 +80,10 @@ public class Labels { frame.setVisible(true); // zeige den Text auf dem Fenster - frame.add(label); + frame.add(label); - - - - - } } + +