GUI
parent
93f837d241
commit
a1f2f1c22b
|
@ -1,58 +0,0 @@
|
|||
package GUIAnwendungen;
|
||||
|
||||
import java.awt.Color;
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
|
||||
import javax.swing.JFrame;
|
||||
import javax.swing.JPanel;
|
||||
import javax.swing.Timer;
|
||||
|
||||
public class BewegePanle extends JPanel {
|
||||
private int yPosition = 0; // Startposition des Panels oben
|
||||
private final int speed = 1; // Geschwindigkeit der Bewegung
|
||||
private final int panelWidth = 100;
|
||||
private final int panelHeight = 100;
|
||||
|
||||
public BewegePanle() {
|
||||
// Setze die Hintergrundfarbe des Panels
|
||||
setBackground(Color.red);
|
||||
|
||||
// Timer initialisieren und starten
|
||||
//(int delay, ActionListener listener)
|
||||
Timer timer = new Timer(10, new ActionListener() {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
// Aktualisiere die y-Position
|
||||
yPosition += speed;
|
||||
|
||||
// Wenn das Panel unten angekommen ist, starte wieder von oben
|
||||
if (yPosition > 750 - panelHeight) {
|
||||
yPosition = 0; // Zurück an den oberen Rand
|
||||
}
|
||||
|
||||
// Erzwinge das Neuzeichnen des Panels
|
||||
setBounds(0, yPosition, panelWidth, panelHeight);
|
||||
}
|
||||
});
|
||||
|
||||
timer.start(); // Timer starten
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
// Erstelle das Hauptfenster
|
||||
JFrame frame = new JFrame();
|
||||
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
||||
frame.setSize(750, 750);
|
||||
frame.setLayout(null); // Deaktiviere das Layout-Management
|
||||
|
||||
// Erstelle eine Instanz von Jpanel und füge sie dem Fenster hinzu
|
||||
BewegePanle panel = new BewegePanle();
|
||||
panel.setBounds(0, 0, 100, 100); // Initiale Position und Größe
|
||||
frame.add(panel);
|
||||
|
||||
// Mache das Fenster sichtbar
|
||||
frame.setVisible(true);
|
||||
}
|
||||
}
|
||||
|
|
@ -1,82 +0,0 @@
|
|||
package GUIAnwendungen;
|
||||
import java.awt.BorderLayout;
|
||||
import java.awt.Color;
|
||||
import java.awt.Dimension;
|
||||
import javax.swing.JFrame;
|
||||
import javax.swing.JPanel;
|
||||
|
||||
public class Borderlayout {
|
||||
/*
|
||||
* steuert die Positionierung von Komponenten in einem Container
|
||||
* Z.B:
|
||||
* NORTH (oben)
|
||||
SOUTH (unten)
|
||||
EAST (rechts)
|
||||
WEST (links)
|
||||
CENTER (Mitte)
|
||||
|
||||
*/
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
// Erstelle ein Fenster (JFrame-Objekt)
|
||||
JFrame frame = new JFrame();
|
||||
|
||||
// Setzt das Layout des Rahmens auf BorderLayout mit einem Abstand von 10 Pixeln zwischen den Komponenten
|
||||
frame.setLayout(new BorderLayout(10,10));
|
||||
|
||||
// Legt die Größe des Fensters fest (Breite: 750 Pixel, Höhe: 750 Pixel)
|
||||
frame.setSize(750, 750);
|
||||
|
||||
// Stellt sicher, dass das Programm beendet wird, wenn das Fenster geschlossen wird
|
||||
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
||||
|
||||
// Setzt den Titel des Fensters
|
||||
frame.setTitle("Mein erstes Fenster");
|
||||
|
||||
// Macht das Fenster sichtbar
|
||||
frame.setVisible(true);
|
||||
|
||||
// Erstelle fünf JPanel-Objekte, die als Container für andere Komponenten dienen können
|
||||
JPanel panel1 = new JPanel();
|
||||
JPanel panel2 = new JPanel();
|
||||
JPanel panel3 = new JPanel();
|
||||
JPanel panel4 = new JPanel();
|
||||
JPanel panel5 = new JPanel();
|
||||
|
||||
// Setzt den Hintergrund von panel1 auf Rot
|
||||
panel1.setBackground(Color.red);
|
||||
// Setzt den Hintergrund von panel2 auf Grün
|
||||
panel2.setBackground(Color.green);
|
||||
// Setzt den Hintergrund von panel3 auf Gelb
|
||||
panel3.setBackground(Color.yellow);
|
||||
// Setzt den Hintergrund von panel4 auf Magenta
|
||||
panel4.setBackground(Color.magenta);
|
||||
// Setzt den Hintergrund von panel5 auf Blau
|
||||
panel5.setBackground(Color.blue);
|
||||
|
||||
// Legt die bevorzugte Größe von panel1 fest (100x100 Pixel)
|
||||
panel1.setPreferredSize(new Dimension(100,100));
|
||||
// Legt die bevorzugte Größe von panel2 fest (100x100 Pixel)
|
||||
panel2.setPreferredSize(new Dimension(100,100));
|
||||
// Legt die bevorzugte Größe von panel3 fest (100x100 Pixel)
|
||||
panel3.setPreferredSize(new Dimension(100,100));
|
||||
// Legt die bevorzugte Größe von panel4 fest (100x100 Pixel)
|
||||
panel4.setPreferredSize(new Dimension(100,100));
|
||||
// Legt die bevorzugte Größe von panel5 fest (100x100 Pixel)
|
||||
panel5.setPreferredSize(new Dimension(100,100));
|
||||
|
||||
// Fügt panel1 im Bereich NORTH des BorderLayouts hinzu
|
||||
frame.add(panel1, BorderLayout.NORTH);
|
||||
// Fügt panel2 im Bereich WEST des BorderLayouts hinzu
|
||||
frame.add(panel2, BorderLayout.WEST);
|
||||
// Fügt panel3 im Bereich EAST des BorderLayouts hinzu
|
||||
frame.add(panel3, BorderLayout.EAST);
|
||||
// Fügt panel4 im Bereich SOUTH des BorderLayouts hinzu
|
||||
frame.add(panel4, BorderLayout.SOUTH);
|
||||
// Fügt panel5 im Bereich CENTER des BorderLayouts hinzu
|
||||
frame.add(panel5, BorderLayout.CENTER);
|
||||
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,43 @@
|
|||
package GUIAnwendungen;
|
||||
|
||||
import java.awt.event.ItemEvent;
|
||||
import java.awt.event.ItemListener;
|
||||
|
||||
import javax.swing.JCheckBox;
|
||||
import javax.swing.JFrame;
|
||||
import javax.swing.JLabel;
|
||||
|
||||
public class CheckBox {
|
||||
|
||||
|
||||
static JFrame frame = new JFrame("JCheckBox demo");
|
||||
static JCheckBox checkBox = new JCheckBox("Check Box");
|
||||
static JLabel label = new JLabel();
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
checkBox.setBounds(40, 40, 100, 30);
|
||||
|
||||
label.setBounds(40, 70, 200, 30);
|
||||
label.setText("Check Box is not checked");
|
||||
|
||||
frame.add(checkBox);
|
||||
frame.add(label);
|
||||
|
||||
frame.setSize(300, 250);
|
||||
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
||||
frame.setLayout(null);
|
||||
frame.setVisible(true);
|
||||
|
||||
checkBox.addItemListener(new ItemListener() {
|
||||
@Override
|
||||
public void itemStateChanged(ItemEvent e) {
|
||||
if(checkBox.isSelected())
|
||||
label.setText("Check Box is checked");
|
||||
else
|
||||
label.setText("Check Box is not checked");
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
}
|
|
@ -0,0 +1,92 @@
|
|||
package GUIAnwendungen;
|
||||
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
import javax.swing.JFrame;
|
||||
import javax.swing.JButton;
|
||||
import javax.swing.JComboBox;
|
||||
import javax.swing.JLabel;
|
||||
import javax.swing.JTextField;
|
||||
|
||||
// Erstelle eine List
|
||||
public class ComboBox {
|
||||
|
||||
// هنا قمنا بإنشاء النافذة و جميع الأشياء التي سنضعها فيها
|
||||
static JFrame frame = new JFrame("JComboBox demo");
|
||||
static JComboBox comboBox = new JComboBox();
|
||||
static JButton addButton = new JButton("Add Item");
|
||||
static JButton removeButton = new JButton("Remove Selected Item");
|
||||
static JButton removeAllButton = new JButton("Remove All Items");
|
||||
static JLabel counterLabel = new JLabel("Total items = 0");
|
||||
static JTextField textField = new JTextField();
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
// frame هنا قمنا بتحديد أماكن الأشياء التي سنضيفها في الـ
|
||||
textField.setBounds(40, 40, 110, 30);
|
||||
addButton.setBounds(170, 40, 120, 30);
|
||||
removeButton.setBounds(40, 80, 250, 30);
|
||||
removeAllButton.setBounds(40, 120, 250, 30);
|
||||
comboBox.setBounds(310, 40, 140, 30);
|
||||
counterLabel.setBounds(310, 80, 140, 30);
|
||||
|
||||
// frame هنا قمنا بإضافة جميع الأشياء التي قمنا بتعريفها سابقاً في الـ
|
||||
frame.add(textField);
|
||||
frame.add(addButton);
|
||||
frame.add(removeButton);
|
||||
frame.add(removeAllButton);
|
||||
frame.add(comboBox);
|
||||
frame.add(counterLabel);
|
||||
|
||||
// frame هنا قمنا بتحديد خصائص الـ
|
||||
frame.setSize(500, 250);
|
||||
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
||||
frame.setLayout(null);
|
||||
frame.setVisible(true);
|
||||
|
||||
|
||||
// addButton هنا نضع الأوامر التي نريد تنفيذها عند النقر على الـ
|
||||
addButton.addActionListener(new ActionListener() {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e)
|
||||
{
|
||||
// إذا كان مربع النص غير فارغ و قام المستخدم بالنقر على الزر, عندها سيتم إضافته
|
||||
if( !textField.getText().equals("") )
|
||||
{
|
||||
comboBox.addItem(textField.getText());
|
||||
counterLabel.setText("Total Items = "+ comboBox.getItemCount());
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
// removeButton هنا نضع الأوامر التي نريد تنفيذها عند النقر على الـ
|
||||
removeButton.addActionListener(new ActionListener() {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e)
|
||||
{
|
||||
// سيتم حذف العنصر الحالي بشرط وجود عنصر واحد على الأقل فيها
|
||||
if( comboBox.getItemCount() > 0 )
|
||||
{
|
||||
comboBox.removeItemAt(comboBox.getSelectedIndex());
|
||||
counterLabel.setText("Total Items = "+ comboBox.getItemCount());
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
// removeAllButton هنا نضع الأوامر التي نريد تنفيذها عند النقر على الـ
|
||||
removeAllButton.addActionListener(new ActionListener() {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e)
|
||||
{
|
||||
// عند النقر على هذا الزر, سيتم حذف جميع العناصر
|
||||
comboBox.removeAllItems();
|
||||
counterLabel.setText("Total Items = "+ comboBox.getItemCount());
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
|
@ -1,60 +0,0 @@
|
|||
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 هنا قمنا بتشغيل كائن الـ
|
||||
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,22 @@
|
|||
package GUIAnwendungen;
|
||||
import javax.swing.JFileChooser;
|
||||
|
||||
public class FileChooser {
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
// chooser إسمه JColorChooser هنا قمنا بإنشاء كائن من الكلاس
|
||||
JFileChooser chooser = new JFileChooser();
|
||||
|
||||
// كنافذة لإختيار ملف في وسط شاشة المستخدم chooser هنا قمنا بإظهار الكائن
|
||||
// returnedValue و تخزين القيمة التي سيرجعها عندما يتم إغلاقه في المتغير
|
||||
int returnedValue = chooser.showOpenDialog(null);
|
||||
|
||||
if(returnedValue == JFileChooser.APPROVE_OPTION)
|
||||
{
|
||||
// هنا من المفترض أن تضع الأوامر التي سيتم تنفيذها بعد إختيار الملف أو المجلد
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
|
@ -1,64 +0,0 @@
|
|||
package GUIAnwendungen;
|
||||
import java.awt.BorderLayout;
|
||||
import java.awt.Color;
|
||||
import java.awt.Dimension;
|
||||
import java.awt.FlowLayout;
|
||||
|
||||
import javax.swing.JButton;
|
||||
import javax.swing.JFrame;
|
||||
import javax.swing.JPanel;
|
||||
|
||||
public class Flowlayout {
|
||||
|
||||
/*
|
||||
* - Ordent die Komponenten innerhalb eines Containers in einer einzigen Zeile
|
||||
* - Ausrichtung: Die Komponenten können linksbündig (LEFT), zentriert (CENTER), oder rechtsbündig (RIGHT) ausgerichtet werden.
|
||||
* - hier wird auch angezeigt, wie man button auf Panel paltziert
|
||||
* Hinweis: FlowLayout bietet keine Möglichkeit, eine einzelne Komponente manuell zu platzieren.
|
||||
*/
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
// Erstelle ein JFrame-Fenster
|
||||
JFrame fenster = new JFrame();
|
||||
|
||||
// Beendet das Programm beim Schließen des Fensters
|
||||
fenster.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
||||
|
||||
// Legt die Größe des Fensters auf 500x500 Pixel fest
|
||||
fenster.setSize(500, 500);
|
||||
|
||||
// Setzt das Layout des Fensters auf FlowLayout mit zentrierter Ausrichtung und
|
||||
// Abständen von 10 Pixeln
|
||||
fenster.setLayout(new FlowLayout(FlowLayout.CENTER, 10, 10));
|
||||
|
||||
// Erstelle ein JPanel mit vordefinierter Größe 250x250 Pixel und hellgrauem
|
||||
// Hintergrund
|
||||
JPanel panel1 = new JPanel();
|
||||
panel1.setPreferredSize(new Dimension(250, 250));
|
||||
panel1.setBackground(Color.lightGray);
|
||||
|
||||
// Setzt das Layout von panel1 ebenfalls auf FlowLayout
|
||||
panel1.setLayout(new FlowLayout());
|
||||
|
||||
// Füge dem Panel 9 Buttons hinzu, die in einer Zeile oder mehreren Zeilen
|
||||
// angeordnet werden
|
||||
panel1.add(new JButton("1"));
|
||||
panel1.add(new JButton("2"));
|
||||
panel1.add(new JButton("3"));
|
||||
panel1.add(new JButton("4"));
|
||||
panel1.add(new JButton("5"));
|
||||
panel1.add(new JButton("6"));
|
||||
panel1.add(new JButton("7"));
|
||||
panel1.add(new JButton("8"));
|
||||
panel1.add(new JButton("9"));
|
||||
|
||||
// Füge das Panel dem JFrame hinzu
|
||||
fenster.add(panel1);
|
||||
|
||||
// Macht das Fenster sichtbar
|
||||
fenster.setVisible(true);
|
||||
}
|
||||
|
||||
|
||||
}
|
|
@ -1,31 +0,0 @@
|
|||
package GUIAnwendungen;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.awt.*;
|
||||
import java.awt.BorderLayout;
|
||||
import java.awt.Color;
|
||||
import java.awt.Dimension;
|
||||
import java.awt.FlowLayout;
|
||||
import java.awt.GridLayout;
|
||||
|
||||
import javax.swing.JButton;
|
||||
import javax.swing.JFrame;
|
||||
import javax.swing.JPanel;
|
||||
public class GridBagLayoutExample {
|
||||
/*- manuell positionien von Elementen
|
||||
* - in viel flexibleres Layout-Manager, bei dem du die Position,
|
||||
* Größe und Ausdehnung (über mehrere Zeilen/Spalten) der einzelnen Komponenten präzise steuern kannst.
|
||||
* - Du kannst einzelne Komponenten unterschiedlich groß machen, sie über mehrere Zellen spannen und Abstände festlegen.
|
||||
*/
|
||||
public static void main(String[] args) {
|
||||
JFrame frame = new JFrame("GridBagLayout Example");
|
||||
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
||||
frame.setLayout(null);
|
||||
JButton button1 = new JButton("Button1");
|
||||
frame.add(button1);
|
||||
|
||||
button1.setBounds(0, 0, 120, 30);
|
||||
frame.setSize(800, 800);
|
||||
frame.setVisible(true);
|
||||
}
|
||||
}
|
|
@ -1,42 +0,0 @@
|
|||
package GUIAnwendungen;
|
||||
|
||||
import java.awt.BorderLayout;
|
||||
import java.awt.Color;
|
||||
import java.awt.Dimension;
|
||||
import java.awt.FlowLayout;
|
||||
import java.awt.GridLayout;
|
||||
|
||||
import javax.swing.JButton;
|
||||
import javax.swing.JFrame;
|
||||
import javax.swing.JPanel;
|
||||
|
||||
public class Gridlayout {
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
// Erstelle ein JFrame-Fenster
|
||||
JFrame fenster = new JFrame();
|
||||
|
||||
// Beendet das Programm beim Schließen des Fensters
|
||||
fenster.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
||||
|
||||
// Legt die Größe des Fensters auf 500x500 Pixel fest
|
||||
fenster.setSize(500, 500);
|
||||
fenster.setLayout(new GridLayout(4,3,10,4));
|
||||
|
||||
fenster.add(new JButton("1"));
|
||||
fenster.add(new JButton("2"));
|
||||
fenster.add(new JButton("3"));
|
||||
fenster.add(new JButton("4"));
|
||||
fenster.add(new JButton("5"));
|
||||
fenster.add(new JButton("6"));
|
||||
fenster.add(new JButton("7"));
|
||||
fenster.add(new JButton("8"));
|
||||
fenster.add(new JButton("9"));
|
||||
|
||||
fenster.setVisible(true);
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
|
@ -1,6 +1,12 @@
|
|||
package GUIAnwendungen;
|
||||
|
||||
import java.awt.Color;
|
||||
import javax.swing.JFrame;
|
||||
import javax.swing.JPanel;
|
||||
import javax.swing.BorderFactory;
|
||||
import javax.swing.JLabel;
|
||||
import javax.swing.JTextField;
|
||||
import javax.swing.JComboBox;
|
||||
import javax.swing.JButton;
|
||||
import java.awt.Font;
|
||||
|
||||
import javax.swing.BorderFactory;
|
||||
|
@ -13,30 +19,65 @@ import javax.swing.border.Border;
|
|||
// mit Jpanel kann man alle grafischen Bauelemente einsetzen
|
||||
public class Jpanel {
|
||||
|
||||
public static void main(String[] args) {
|
||||
JPanel panel = new JPanel();
|
||||
panel.setBackground(Color.red);
|
||||
// setze eine Grafisches Bauelement (int x, int y, int width, int height)
|
||||
panel.setBounds(100, 100, 10, 10);
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
JFrame frame = new JFrame();
|
||||
// هنا قمنا بإنشاء النافذة مع تحديد بعض خصائصها
|
||||
JFrame frame = new JFrame("JPanel demo");
|
||||
frame.setSize(400, 400);
|
||||
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
||||
frame.setLayout(null);
|
||||
|
||||
//stellt sicher, dass keine automatische Positionierung und Größenanpassung erhalten
|
||||
frame.setLayout(null);
|
||||
// و وضعنا له حدود و عنوان Layout Manager لا يستخدم أي Panel هنا قمنا بتعريف
|
||||
JPanel panel = new JPanel(null);
|
||||
panel.setBorder(BorderFactory.createTitledBorder("Add User"));
|
||||
panel.setBounds(50, 30, 290, 300);
|
||||
|
||||
// setSize(width, height)
|
||||
frame.setSize(750, 750);
|
||||
// Frame في الـ Panel هنا وضعنا الـ
|
||||
frame.add(panel);
|
||||
|
||||
// setzte einen Überschrift für mein Fenster
|
||||
frame.setTitle("Mein erstes Fenster");
|
||||
// Panel هنا قمنا بتعريف جميع الأشياء التي سنضعها في الـ
|
||||
JLabel label1 = new JLabel("First Name");
|
||||
JLabel label2 = new JLabel("Last Name");
|
||||
JLabel label3 = new JLabel("Father Name");
|
||||
JLabel label4 = new JLabel("Mother Name");
|
||||
JLabel label5 = new JLabel("Gender");
|
||||
JTextField field1 = new JTextField();
|
||||
JTextField field2 = new JTextField();
|
||||
JTextField field3 = new JTextField();
|
||||
JTextField field4 = new JTextField();
|
||||
JComboBox comboBox = new JComboBox(new String[]{ "Male", "Female"});
|
||||
JButton button = new JButton("Add User");
|
||||
|
||||
//setVisible(boolean): gibt an, ob mein Fenster sichtbar ist oder nicht
|
||||
frame.setVisible(true);
|
||||
// Panel هنا قمنا بتحديد مكان كل شيء سنضيفه بداخل الـ
|
||||
label1.setBounds(30, 50, 100, 25);
|
||||
label2.setBounds(30, 90, 100, 25);
|
||||
label3.setBounds(30, 130, 100, 25);
|
||||
label4.setBounds(30, 170, 100, 25);
|
||||
label5.setBounds(30, 210, 100, 25);
|
||||
field1.setBounds(120, 50, 130, 25);
|
||||
field2.setBounds(120, 90, 130, 25);
|
||||
field3.setBounds(120, 130, 130, 25);
|
||||
field4.setBounds(120, 170, 130, 25);
|
||||
comboBox.setBounds(120, 210, 130, 25);
|
||||
button.setBounds(120, 255, 130, 25);
|
||||
|
||||
frame.add(panel);
|
||||
// Panel في الـ Buttons هنا قمنا بوضع الـ
|
||||
panel.add(label1);
|
||||
panel.add(label2);
|
||||
panel.add(label3);
|
||||
panel.add(label4);
|
||||
panel.add(label5);
|
||||
panel.add(field1);
|
||||
panel.add(field2);
|
||||
panel.add(field3);
|
||||
panel.add(field4);
|
||||
panel.add(comboBox);
|
||||
panel.add(button);
|
||||
|
||||
// مرئية Frame هنا جعلنا الـ
|
||||
frame.setVisible(true);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -1,31 +0,0 @@
|
|||
package GUIAnwendungen;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.awt.event.ActionEvent;
|
||||
|
||||
public class KeyBindingsExample extends JFrame {
|
||||
public KeyBindingsExample() {
|
||||
setTitle("KeyBindings Beispiel");
|
||||
setSize(300, 200);
|
||||
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
||||
|
||||
// Panel erstellen
|
||||
JPanel panel = new JPanel();
|
||||
add(panel);
|
||||
|
||||
// KeyBinding hinzufügen: 'A' Taste
|
||||
panel.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke("A"), "keyA");
|
||||
panel.getActionMap().put("keyA", new AbstractAction() {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
System.out.println("Taste 'A' wurde gedrückt (KeyBindings).");
|
||||
}
|
||||
});
|
||||
|
||||
setVisible(true);
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
new KeyBindingsExample();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,51 @@
|
|||
package GUIAnwendungen;
|
||||
|
||||
import javax.swing.DefaultListModel;
|
||||
import javax.swing.JFrame;
|
||||
import javax.swing.JList;
|
||||
import javax.swing.JScrollPane;
|
||||
|
||||
public class List {
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
JFrame frame = new JFrame("JList demo");
|
||||
frame.setSize(320, 360);
|
||||
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
||||
frame.setLayout(null);
|
||||
|
||||
// Erstellt ein neues DefaultListModel-Objekt, das als Datencontainer für die
|
||||
// Elemente der JList dient.
|
||||
// Es speichert die Liste der Elemente (z.B. Farben), die in der JList angezeigt
|
||||
// werden sollen.
|
||||
DefaultListModel model = new DefaultListModel();
|
||||
|
||||
// Erstellt eine neue JList und weist ihr das zuvor erstellte DefaultListModel zu.
|
||||
// Die JList zeigt die Elemente an, die im DefaultListModel gespeichert sind.
|
||||
JList list = new JList(model);
|
||||
|
||||
// Erstellt ein JScrollPane (ein scrollbares Fenster) und fügt die JList darin ein.
|
||||
// Dies ermöglicht das Scrollen, wenn die Liste mehr Elemente enthält, als im sichtbaren Bereich angezeigt werden können.
|
||||
JScrollPane listScrollPane = new JScrollPane(list);
|
||||
|
||||
listScrollPane.setBounds(100, 40, 100, 230);
|
||||
|
||||
model.addElement("red");
|
||||
model.addElement("blue");
|
||||
model.addElement("green");
|
||||
model.addElement("yellow");
|
||||
model.addElement("orange");
|
||||
model.addElement("brown");
|
||||
model.addElement("pink");
|
||||
model.addElement("purple");
|
||||
model.addElement("gray");
|
||||
model.addElement("black");
|
||||
model.addElement("white");
|
||||
|
||||
frame.add(listScrollPane);
|
||||
|
||||
frame.setVisible(true);
|
||||
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,68 @@
|
|||
package GUIAnwendungen.MenuBar;
|
||||
import javax.swing.JFrame;
|
||||
import javax.swing.JMenu;
|
||||
import javax.swing.JMenuBar;
|
||||
import javax.swing.JMenuItem;
|
||||
import javax.swing.JCheckBoxMenuItem;
|
||||
import javax.swing.JRadioButtonMenuItem;
|
||||
import javax.swing.ButtonGroup;
|
||||
public class CheckBoxMenuItem {
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
JFrame frame = new JFrame("JMenuBar demo"); // أي قمنا بإنشاء نافذة مع وضع عنوان لها JFrame هنا أنشأنا كائن من الكلاس
|
||||
frame.setSize(500, 250); // هنا قمنا بتحديد حجم النافذة. عرضها 500 و طولها 250
|
||||
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // هنا جعلنا زر الخروج من النافذة يغلق البرنامج
|
||||
|
||||
// هنا قمنا بتعريف شريط القوائم
|
||||
JMenuBar menuBar = new JMenuBar();
|
||||
|
||||
// هنا قمنا بتعريف قائمة واحدة
|
||||
JMenu menu = new JMenu("Menu");
|
||||
|
||||
// Check Box هنا قمنا بتعريف إثنين
|
||||
JCheckBoxMenuItem connect = new JCheckBoxMenuItem("Connect");
|
||||
JCheckBoxMenuItem recieveNotifications = new JCheckBoxMenuItem("Recieve Notifications");
|
||||
|
||||
// Radio Buttons هنا قمنا بتعريف ثلاثة
|
||||
JRadioButtonMenuItem isAvailable = new JRadioButtonMenuItem("Available");
|
||||
JRadioButtonMenuItem isBusy = new JRadioButtonMenuItem("Busy");
|
||||
JRadioButtonMenuItem isAway = new JRadioButtonMenuItem("Away");
|
||||
|
||||
// هنا قمنا بتعريف عنصر عادي
|
||||
JMenuItem exit = new JMenuItem("Exit");
|
||||
|
||||
// ضمن مجموعة واحدة Radio Buttons لوضع الثلاثة ButtonGroup هنا قمنا بتعريف كائن من الكلاس
|
||||
ButtonGroup group = new ButtonGroup();
|
||||
|
||||
// في نفس المجموعة و بالتالي أصبح بالإمكان إختيار أحدهم فقط Radio Buttons هنا وضعنا الثلاثة
|
||||
group.add(isAvailable);
|
||||
group.add(isBusy);
|
||||
group.add(isAway);
|
||||
|
||||
// مختارين بشكل إفتراضي isAvailable و الـ connect هنا جعلنا الـ
|
||||
connect.setSelected(true);
|
||||
isAvailable.setSelected(true);
|
||||
|
||||
// هنا قمنا بوضع القائمة في شريط القوائم
|
||||
menuBar.add(menu);
|
||||
|
||||
// هنا قمنا بوضع جميع العناصر في القائمة
|
||||
menu.add(connect);
|
||||
menu.add(recieveNotifications);
|
||||
menu.addSeparator(); // هنا أضفنا خط فاصل
|
||||
menu.add(isAvailable);
|
||||
menu.add(isBusy);
|
||||
menu.add(isAway);
|
||||
menu.addSeparator(); // هنا أضفنا خط فاصل
|
||||
menu.add(exit);
|
||||
|
||||
// frame هنا قمنا بوضع شريط القوائم في الـ
|
||||
frame.setJMenuBar(menuBar);
|
||||
|
||||
// مرئية frame هنا جعلنا الـ
|
||||
frame.setVisible(true);
|
||||
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,36 @@
|
|||
package GUIAnwendungen.MenuBar;
|
||||
import javax.swing.JFrame;
|
||||
import javax.swing.JMenu;
|
||||
import javax.swing.JMenuBar;
|
||||
|
||||
public class MenuBar {
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
JFrame frame = new JFrame("JMenuBar demo"); // أي قمنا بإنشاء نافذة مع وضع عنوان لها JFrame هنا أنشأنا كائن من
|
||||
// الكلاس
|
||||
frame.setSize(500, 250); // هنا قمنا بتحديد حجم النافذة. عرضها 500 و طولها 250
|
||||
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // هنا جعلنا زر الخروج من النافذة يغلق البرنامج
|
||||
|
||||
// هنا قمنا بتعريف شريط القوائم
|
||||
JMenuBar menuBar = new JMenuBar();
|
||||
|
||||
// هنا قمنا بتعريف 3 قوائم
|
||||
JMenu file = new JMenu("File");
|
||||
JMenu edit = new JMenu("Edit");
|
||||
JMenu help = new JMenu("Help");
|
||||
|
||||
// هنا قمنا بوضع القوائم الثلاثة في شريط القوائم
|
||||
menuBar.add(file);
|
||||
menuBar.add(edit);
|
||||
menuBar.add(help);
|
||||
|
||||
// frame هنا قمنا بوضع شريط القوائم في الـ
|
||||
frame.setJMenuBar(menuBar);
|
||||
|
||||
// مرئية frame هنا جعلنا الـ
|
||||
frame.setVisible(true);
|
||||
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,134 @@
|
|||
package GUIAnwendungen.MenuBar;
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
import javax.swing.JFrame;
|
||||
import javax.swing.JMenu;
|
||||
import javax.swing.JMenuBar;
|
||||
import javax.swing.JMenuItem;
|
||||
public class MenuItem {
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
JFrame frame = new JFrame("JMenuBar demo"); // أي قمنا بإنشاء نافذة مع وضع عنوان لها JFrame هنا أنشأنا كائن من الكلاس
|
||||
frame.setSize(500, 250); // هنا قمنا بتحديد حجم النافذة. عرضها 500 و طولها 250
|
||||
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // هنا جعلنا زر الخروج من النافذة يغلق البرنامج
|
||||
|
||||
// هنا قمنا بتعريف شريط القوائم
|
||||
JMenuBar menuBar = new JMenuBar();
|
||||
|
||||
// هنا قمنا بتعريف 3 قوائم
|
||||
JMenu file = new JMenu("File");
|
||||
JMenu edit = new JMenu("Edit");
|
||||
JMenu help = new JMenu("Help");
|
||||
|
||||
// هنا قمنا بتعريف 11 عنصر
|
||||
JMenuItem newFile = new JMenuItem("New");
|
||||
JMenuItem open = new JMenuItem("Open");
|
||||
JMenuItem save = new JMenuItem("Save");
|
||||
JMenuItem exit = new JMenuItem("Exit");
|
||||
JMenuItem undo = new JMenuItem("Undo");
|
||||
JMenuItem cut = new JMenuItem("Cut");
|
||||
JMenuItem copy = new JMenuItem("Copy");
|
||||
JMenuItem paste = new JMenuItem("Paste");
|
||||
JMenuItem select = new JMenuItem("Select All");
|
||||
JMenuItem about = new JMenuItem("About");
|
||||
JMenuItem report = new JMenuItem("Report Issue");
|
||||
|
||||
// هنا قمنا بوضع القوائم الثلاثة في شريط القوائم
|
||||
menuBar.add(file);
|
||||
menuBar.add(edit);
|
||||
menuBar.add(help);
|
||||
|
||||
// file في القائمة exit و save ,open ,newFile هنا قمنا بوضع العناصر
|
||||
file.add(newFile);
|
||||
file.add(open);
|
||||
file.add(save);
|
||||
file.addSeparator(); // هنا أضفنا خط فاصل
|
||||
file.add(exit);
|
||||
|
||||
// edit في القائمة select و paste ,copy ,cut ,undo هنا قمنا بوضع العناصر
|
||||
edit.add(undo);
|
||||
edit.addSeparator(); // هنا أضفنا خط فاصل
|
||||
edit.add(cut);
|
||||
edit.add(copy);
|
||||
edit.add(paste);
|
||||
edit.addSeparator(); // هنا أضفنا خط فاصل
|
||||
edit.add(select);
|
||||
|
||||
// help في القائمة report و about هنا قمنا بوضع العناصر
|
||||
help.add(about);
|
||||
help.add(report);
|
||||
|
||||
// frame هنا قمنا بوضع شريط القوائم في الـ
|
||||
frame.setJMenuBar(menuBar);
|
||||
|
||||
// مرئية frame هنا جعلنا الـ
|
||||
frame.setVisible(true);
|
||||
|
||||
// هنا نضع الأوامر التي ستنفذ عند النقر على كل عنصر موجود في القائمة
|
||||
ActionListener al = new ActionListener() {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
if( e.getSource() == newFile )
|
||||
{
|
||||
// newFile هنا نضع الأوامر التي نريد أن يتم تنفيذه عند النقر على العنصر
|
||||
}
|
||||
else if( e.getSource() == open )
|
||||
{
|
||||
// open هنا نضع الأوامر التي نريد أن يتم تنفيذه عند النقر على العنصر
|
||||
}
|
||||
else if( e.getSource() == save )
|
||||
{
|
||||
// save هنا نضع الأوامر التي نريد أن يتم تنفيذه عند النقر على العنصر
|
||||
}
|
||||
else if( e.getSource() == exit )
|
||||
{
|
||||
// exit هنا نضع الأوامر التي نريد أن يتم تنفيذه عند النقر على العنصر
|
||||
}
|
||||
else if( e.getSource() == undo )
|
||||
{
|
||||
// undo هنا نضع الأوامر التي نريد أن يتم تنفيذه عند النقر على العنصر
|
||||
}
|
||||
else if( e.getSource() == copy )
|
||||
{
|
||||
// copy هنا نضع الأوامر التي نريد أن يتم تنفيذه عند النقر على العنصر
|
||||
}
|
||||
else if( e.getSource() == cut )
|
||||
{
|
||||
// cut هنا نضع الأوامر التي نريد أن يتم تنفيذه عند النقر على العنصر
|
||||
}
|
||||
else if( e.getSource() == paste )
|
||||
{
|
||||
// paste هنا نضع الأوامر التي نريد أن يتم تنفيذه عند النقر على العنصر
|
||||
}
|
||||
else if( e.getSource() == select )
|
||||
{
|
||||
// select هنا نضع الأوامر التي نريد أن يتم تنفيذه عند النقر على العنصر
|
||||
}
|
||||
else if( e.getSource() == about )
|
||||
{
|
||||
// about هنا نضع الأوامر التي نريد أن يتم تنفيذه عند النقر على العنصر
|
||||
}
|
||||
else if( e.getSource() == report )
|
||||
{
|
||||
// report هنا نضع الأوامر التي نريد أن يتم تنفيذه عند النقر على العنصر
|
||||
}
|
||||
|
||||
}
|
||||
};
|
||||
|
||||
// al هنا ربطنا جميع العناصر بالكائن
|
||||
newFile.addActionListener(al);
|
||||
open.addActionListener(al);
|
||||
save.addActionListener(al);
|
||||
exit.addActionListener(al);
|
||||
undo.addActionListener(al);
|
||||
cut.addActionListener(al);
|
||||
copy.addActionListener(al);
|
||||
paste.addActionListener(al);
|
||||
select.addActionListener(al);
|
||||
about.addActionListener(al);
|
||||
report.addActionListener(al);
|
||||
|
||||
}
|
||||
}
|
|
@ -0,0 +1,54 @@
|
|||
package GUIAnwendungen.MenuBar;
|
||||
import javax.swing.JFrame;
|
||||
import javax.swing.JMenu;
|
||||
import javax.swing.JMenuBar;
|
||||
import javax.swing.JMenuItem;
|
||||
public class Submenu {
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
JFrame frame = new JFrame("JMenuBar demo"); // أي قمنا بإنشاء نافذة مع وضع عنوان لها JFrame هنا أنشأنا كائن من
|
||||
// الكلاس
|
||||
frame.setSize(500, 250); // هنا قمنا بتحديد حجم النافذة. عرضها 500 و طولها 250
|
||||
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // هنا جعلنا زر الخروج من النافذة يغلق البرنامج
|
||||
|
||||
// هنا قمنا بتعريف شريط القوائم
|
||||
JMenuBar menuBar = new JMenuBar();
|
||||
|
||||
// هنا قمنا بتعريف القائمة التي ستظهر في الشريط و القائمة التي ستظهر بداخلها
|
||||
JMenu menu = new JMenu("Menu");
|
||||
JMenu subMenu = new JMenu("Sub Menu");
|
||||
|
||||
// هنا قمنا بتعريف 6 عناصر
|
||||
JMenuItem item1 = new JMenuItem("Item 1");
|
||||
JMenuItem item2 = new JMenuItem("Item 2");
|
||||
JMenuItem item3 = new JMenuItem("Item 3");
|
||||
JMenuItem item4 = new JMenuItem("Item 4");
|
||||
JMenuItem item5 = new JMenuItem("Item 5");
|
||||
JMenuItem item6 = new JMenuItem("Item 6");
|
||||
|
||||
// هنا قمنا بوضع القائمة في شريط القوائم
|
||||
menuBar.add(menu);
|
||||
|
||||
// هنا قمنا بوضع أول ثلاث عناصر في القائمة
|
||||
menu.add(item1);
|
||||
menu.add(item2);
|
||||
menu.add(item3);
|
||||
|
||||
// هنا قمنا بوضع القائمة الداخلية في القائمة
|
||||
menu.add(subMenu);
|
||||
|
||||
// هنا قمنا بوضع العناصر الثلاثة المتبقية في القائمة الداخلية
|
||||
subMenu.add(item4);
|
||||
subMenu.add(item5);
|
||||
subMenu.add(item6);
|
||||
|
||||
// frame هنا قمنا بوضع شريط القوائم في الـ
|
||||
frame.setJMenuBar(menuBar);
|
||||
|
||||
// مرئية frame هنا جعلنا الـ
|
||||
frame.setVisible(true);
|
||||
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,75 @@
|
|||
package GUIAnwendungen;
|
||||
|
||||
|
||||
import javax.swing.JFrame;
|
||||
import javax.swing.JLabel;
|
||||
import javax.swing.JPasswordField;
|
||||
import javax.swing.JProgressBar;
|
||||
import java.awt.event.KeyEvent;
|
||||
import java.awt.event.KeyListener;
|
||||
import java.awt.Color;
|
||||
public class ProgressBar {
|
||||
|
||||
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
// هنا قمنا بإنشاء النافذة و جميع الأشياء التي سنضعها فيها
|
||||
JFrame frame = new JFrame("JProgressBar demo");
|
||||
|
||||
JLabel label_1 = new JLabel("Password");
|
||||
JLabel label_2 = new JLabel("Strength");
|
||||
JPasswordField password = new JPasswordField();
|
||||
JProgressBar progress = new JProgressBar(0, 10);
|
||||
|
||||
// frame هنا قمنا بتحديد أماكن الأشياء التي سنضيفها في الـ
|
||||
label_1.setBounds(20, 20, 60, 30);
|
||||
password.setBounds(90, 20, 140, 30);
|
||||
label_2.setBounds(20, 60, 60, 30);
|
||||
progress.setBounds(90, 68, 140, 15);
|
||||
|
||||
// frame هنا قمنا بإضافة جميع الأشياء التي قمنا بتعريفها سابقاً في الـ
|
||||
frame.add(label_1);
|
||||
frame.add(password);
|
||||
frame.add(label_2);
|
||||
frame.add(progress);
|
||||
|
||||
// frame هنا قمنا بتحديد خصائص الـ
|
||||
frame.setSize(300, 150);
|
||||
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
||||
frame.setLayout(null);
|
||||
frame.setVisible(true);
|
||||
|
||||
|
||||
// password هنا نضع الأوامر التي نريد تنفيذها عند كتابة أو حذف أي حرف موجود في مربع الـ
|
||||
password.addKeyListener(new KeyListener() {
|
||||
@Override
|
||||
public void keyTyped(KeyEvent e) { }
|
||||
|
||||
@Override
|
||||
public void keyPressed(KeyEvent e) { }
|
||||
|
||||
@Override
|
||||
public void keyReleased(KeyEvent e)
|
||||
{
|
||||
int passLength = password.getPassword().length;
|
||||
progress.setValue(passLength);
|
||||
|
||||
// إلى الأحمر Progress Bar إذا قام المستخدم بإدخال 4 أحرف, سيتم تغيير لون الـ
|
||||
if(passLength < 5)
|
||||
progress.setForeground(Color.red);
|
||||
|
||||
// إلى الأصفر Progress Bar إذا قام المستخدم بإدخال 5-10 أحرف, سيتم تغيير لون الـ
|
||||
else if(passLength >= 5 && passLength < 10)
|
||||
progress.setForeground(Color.yellow);
|
||||
|
||||
// إلى الأخضر Progress Bar إذا قام المستخدم بإدخال 10 أحرف أو أكثر, سيتم تغيير لون الـ
|
||||
else if(passLength >= 10)
|
||||
progress.setForeground(Color.green);
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,70 @@
|
|||
package GUIAnwendungen;
|
||||
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
import javax.swing.JFrame;
|
||||
import javax.swing.JLabel;
|
||||
import javax.swing.JRadioButton;
|
||||
import javax.swing.ButtonGroup;
|
||||
import javax.swing.JButton;
|
||||
|
||||
public class RadioButton {
|
||||
|
||||
static JFrame frame = new JFrame("JRadioButton demo");
|
||||
static JLabel label = new JLabel("Select your language");
|
||||
static JRadioButton radioButton_1 = new JRadioButton("Arabic", true);
|
||||
static JRadioButton radioButton_2 = new JRadioButton("English");
|
||||
static JRadioButton radioButton_3 = new JRadioButton("French");
|
||||
static JLabel labelResult = new JLabel();
|
||||
static JButton button = new JButton("View selected choice");
|
||||
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
ButtonGroup group = new ButtonGroup();
|
||||
group.add(radioButton_1);
|
||||
group.add(radioButton_2);
|
||||
group.add(radioButton_3);
|
||||
|
||||
label.setBounds(40, 10, 150, 30);
|
||||
radioButton_1.setBounds(40, 40, 100, 30);
|
||||
radioButton_2.setBounds(40, 70, 100, 30);
|
||||
radioButton_3.setBounds(40, 100, 100, 30);
|
||||
button.setBounds(40, 150, 170, 30);
|
||||
labelResult.setBounds(40, 190, 180, 30);
|
||||
|
||||
|
||||
frame.add(label);
|
||||
frame.add(radioButton_1);
|
||||
frame.add(radioButton_2);
|
||||
frame.add(radioButton_3);
|
||||
frame.add(button);
|
||||
frame.add(labelResult);
|
||||
|
||||
frame.setSize(300, 300);
|
||||
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
||||
frame.setLayout(null);
|
||||
frame.setVisible(true);
|
||||
|
||||
|
||||
button.addActionListener(new ActionListener() {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e)
|
||||
{
|
||||
// labelResult سيتم وضع النص التالي كنص للـ radioButton_1 إذا قام المستخدم بإختيار الـ
|
||||
if(radioButton_1.isSelected())
|
||||
labelResult.setText("You language is: "+radioButton_1.getText());
|
||||
|
||||
// labelResult سيتم وضع النص التالي كنص للـ radioButton_2 إذا قام المستخدم بإختيار الـ
|
||||
else if(radioButton_2.isSelected())
|
||||
labelResult.setText("You language is: "+radioButton_2.getText());
|
||||
|
||||
// labelResult سيتم وضع النص التالي كنص للـ radioButton_3 إذا قام المستخدم بإختيار الـ
|
||||
else if(radioButton_3.isSelected())
|
||||
labelResult.setText("You language is: "+radioButton_3.getText());
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,48 @@
|
|||
package GUIAnwendungen;
|
||||
|
||||
import javax.swing.JFrame;
|
||||
import javax.swing.JLabel;
|
||||
import javax.swing.JSpinner;
|
||||
import javax.swing.SpinnerListModel;
|
||||
import javax.swing.event.ChangeEvent;
|
||||
import javax.swing.event.ChangeListener;
|
||||
|
||||
|
||||
public class Spinner {
|
||||
|
||||
// هنا قمنا بإنشاء النافذة و جميع الأشياء التي سنضعها فيها
|
||||
static JFrame frame = new JFrame("JSpinner demo");
|
||||
static String[] levels = { "Easy", "Meduim", "Hard" };
|
||||
static SpinnerListModel model = new SpinnerListModel(levels);
|
||||
static JSpinner spinner = new JSpinner(model);
|
||||
static JLabel label = new JLabel("Level: Easy");
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
// frame هنا قمنا بتحديد أماكن الأشياء التي سنضيفها في الـ
|
||||
spinner.setBounds(100, 40, 100, 30);
|
||||
label.setBounds(100, 80, 100, 30);
|
||||
|
||||
// frame هنا قمنا بإضافة جميع الأشياء التي قمنا بتعريفها سابقاً في الـ
|
||||
frame.add(spinner);
|
||||
frame.add(label);
|
||||
|
||||
// frame هنا قمنا بتحديد خصائص الـ
|
||||
frame.setSize(300, 250);
|
||||
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
||||
frame.setLayout(null);
|
||||
frame.setVisible(true);
|
||||
|
||||
|
||||
// spinner هنا نضع الأوامر التي نريد تنفيذها في كل مرة يتم فيها تغيير قيمة الـ
|
||||
spinner.addChangeListener(new ChangeListener() {
|
||||
@Override
|
||||
// سيتم عرض القيمة التي إختارها
|
||||
public void stateChanged(ChangeEvent e) {
|
||||
label.setText("Level: " + spinner.getValue());
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,137 @@
|
|||
package GUIAnwendungen;
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
import javax.swing.JFrame;
|
||||
import javax.swing.JLabel;
|
||||
import javax.swing.JTextField;
|
||||
import javax.swing.JButton;
|
||||
import javax.swing.JTable;
|
||||
import javax.swing.table.DefaultTableModel;
|
||||
import javax.swing.JScrollPane;
|
||||
|
||||
|
||||
public class Table {
|
||||
// هنا قمنا بإنشاء النافذة و جميع الأشياء التي سنضعها فيها
|
||||
static JFrame frame = new JFrame("JTable demo");
|
||||
static JLabel label_1 = new JLabel("ID");
|
||||
static JLabel label_2 = new JLabel("Name");
|
||||
static JLabel label_3 = new JLabel("Phone");
|
||||
static JTextField textField_1 = new JTextField();
|
||||
static JTextField textField_2 = new JTextField();
|
||||
static JTextField textField_3 = new JTextField();
|
||||
static JButton btn_add = new JButton("Add");
|
||||
static JButton btn_clear = new JButton("Clear");
|
||||
static JButton btn_delete = new JButton("Delete Selected");
|
||||
static JButton btn_deleteAll = new JButton("Delete All");
|
||||
static DefaultTableModel model = new DefaultTableModel();
|
||||
static JTable table = new JTable( model );
|
||||
static JScrollPane tableScroller = new JScrollPane( table );
|
||||
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
// هنا قمنا بوضع أسماء الأعمدة التي ستظهر في الجدول
|
||||
model.addColumn("ID");
|
||||
model.addColumn("Name");
|
||||
model.addColumn("Phone");
|
||||
|
||||
// frame هنا قمنا بتحديد أماكن الأشياء التي سنضيفها في الـ
|
||||
label_1.setBounds(40, 50, 50, 20);
|
||||
label_2.setBounds(40, 90, 50, 20);
|
||||
label_3.setBounds(40, 130, 50, 20);
|
||||
textField_1.setBounds(100, 50, 120, 20);
|
||||
textField_2.setBounds(100, 90, 120, 20);
|
||||
textField_3.setBounds(100, 130, 120, 20);
|
||||
btn_add.setBounds(150, 180, 70, 30);
|
||||
btn_clear.setBounds(70, 180, 70, 30);
|
||||
btn_delete.setBounds(315, 250, 140, 30);
|
||||
btn_deleteAll.setBounds(470, 250, 140, 30);
|
||||
tableScroller.setBounds(280, 50, 370, 160);
|
||||
|
||||
// frame هنا قمنا بإضافة جميع الأشياء التي قمنا بتعريفها سابقاً في الـ
|
||||
frame.add(label_1);
|
||||
frame.add(label_2);
|
||||
frame.add(label_3);
|
||||
frame.add(textField_1);
|
||||
frame.add(textField_2);
|
||||
frame.add(textField_3);
|
||||
frame.add(btn_add);
|
||||
frame.add(btn_clear);
|
||||
frame.add(btn_delete);
|
||||
frame.add(btn_deleteAll);
|
||||
frame.add(tableScroller);
|
||||
|
||||
// frame هنا قمنا بتحديد خصائص الـ
|
||||
frame.setSize(710, 350);
|
||||
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
||||
frame.setLayout(null);
|
||||
frame.setVisible(true);
|
||||
|
||||
|
||||
// btn_add هنا نضع الأوامر التي نريد تنفيذها عند النقر على الـ
|
||||
btn_add.addActionListener(new ActionListener() {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e)
|
||||
{
|
||||
// إذا قام المستخدم بإدخال بيانات في مربعات النصوص الثلاثة
|
||||
if( !textField_1.getText().equals("") && !textField_2.getText().equals("") && !textField_3.getText().equals("") )
|
||||
{
|
||||
// عندها سيتم تخزينهم في متغيرات بشكل مؤقت
|
||||
String id = textField_1.getText();
|
||||
String name = textField_2.getText();
|
||||
String phone = textField_3.getText();
|
||||
|
||||
// الخاصة بالجدول model بعدها سيتم تخزينهم في مصفوفة واحدة, ثم إضافتها في الـ
|
||||
String[] userInfo = { id, name, phone };
|
||||
model.addRow( userInfo );
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
// btn_clear هنا نضع الأوامر التي نريد تنفيذها عند النقر على الـ
|
||||
btn_clear.addActionListener(new ActionListener() {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e)
|
||||
{
|
||||
// سيتم مسح النصوص المدخلة في مربعات النصوص الثلاثة
|
||||
textField_1.setText("");
|
||||
textField_2.setText("");
|
||||
textField_3.setText("");
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
// btn_delete هنا نضع الأوامر التي نريد تنفيذها عند النقر على الـ
|
||||
btn_delete.addActionListener(new ActionListener() {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
// إذا كان المستخدم قد قام بتحديد سطر واحد على الأقل من الجدول
|
||||
if( table.getSelectedRowCount() > 0 )
|
||||
{
|
||||
// الخاص فيه index كل سطر قام المستخدم بتحديده من الجدول بعدها سيتم حذف كل سطر من خلال رقم الـ index سيتم تخزين رقم
|
||||
int[] selectedIndices = table.getSelectedRows();
|
||||
for( int i=selectedIndices.length-1; i>=0; i-- )
|
||||
{
|
||||
model.removeRow( selectedIndices[i] );
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
// btn_deleteAll هنا نضع الأوامر التي نريد تنفيذها عند النقر على الـ
|
||||
btn_deleteAll.addActionListener(new ActionListener() {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e)
|
||||
{
|
||||
// يساوي 0. أي سيتم مسح جميع العناصر الموجودة فيها model هنا سيتم جعل عدد أسطر الـ
|
||||
model.setRowCount(0);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
Binary file not shown.
Before Width: | Height: | Size: 20 KiB |
|
@ -8,13 +8,6 @@ import javax.swing.JButton;
|
|||
import javax.swing.JFrame;
|
||||
import javax.swing.JTextField;
|
||||
|
||||
/*Beschreibung das Problem:
|
||||
* Instanzvariablen sollten verwendet werden, wenn du sicherstellen möchtest, dass Variablen wie JButton und JTextField in der gesamten Klasse (und in actionPerformed) sichtbar sind.
|
||||
Der Konstruktor der Klasse wird verwendet, um die GUI-Komponenten zu initialisieren und das Fenster aufzubauen.
|
||||
Die main-Methode ist static und dient dazu, die Anwendung zu starten, indem sie eine Instanz der Klasse erstellt.
|
||||
Anonyme innere Klassen sind eine praktische Möglichkeit, wenn du einfache Event-Handling-Logik direkt in der main-Methode implementieren möchtest, ohne eine zusätzliche Klasse oder Instanzmethoden zu erstellen.
|
||||
*
|
||||
*/
|
||||
|
||||
public class TextEingaben extends JFrame implements ActionListener {
|
||||
// Instanzvariablen
|
||||
|
|
|
@ -0,0 +1,56 @@
|
|||
package GUIAnwendungen;
|
||||
import javax.swing.JFrame;
|
||||
import java.awt.GridLayout;
|
||||
import javax.swing.JTree;
|
||||
import javax.swing.tree.DefaultMutableTreeNode;
|
||||
import javax.swing.JScrollPane;
|
||||
public class Tree {
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
JFrame frame = new JFrame("JTree demo"); // أي قمنا بإنشاء نافذة مع وضع عنوان لها JFrame هنا أنشأنا كائن من
|
||||
// الكلاس
|
||||
frame.setSize(350, 300); // هنا قمنا بتحديد النافذة. عرضها 350 و طولها 300
|
||||
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // هنا جعلنا زر الخروج من النافذة يغلق البرنامج
|
||||
frame.setLayout(new GridLayout()); // في كامل الشاشة مهما كان حجمها Tree لأننا سنضع الـ Layout Manager كـ
|
||||
// GridLayout هنا إستخدمنا كائن من الكلاس
|
||||
|
||||
// Tree التي سنضعها في الـ Nodes هنا قمنا بتعريف جميع الـ
|
||||
DefaultMutableTreeNode menu = new DefaultMutableTreeNode("Menu");
|
||||
DefaultMutableTreeNode food = new DefaultMutableTreeNode("Food");
|
||||
DefaultMutableTreeNode drink = new DefaultMutableTreeNode("Drink");
|
||||
DefaultMutableTreeNode pizza = new DefaultMutableTreeNode("Pizza");
|
||||
DefaultMutableTreeNode hotDogs = new DefaultMutableTreeNode("Hot Dogs");
|
||||
DefaultMutableTreeNode chicken = new DefaultMutableTreeNode("Chicken");
|
||||
DefaultMutableTreeNode hamburger = new DefaultMutableTreeNode("Hamburger");
|
||||
DefaultMutableTreeNode pepsi = new DefaultMutableTreeNode("Pepsi");
|
||||
DefaultMutableTreeNode cola = new DefaultMutableTreeNode("Cola");
|
||||
DefaultMutableTreeNode rani = new DefaultMutableTreeNode("Rani");
|
||||
DefaultMutableTreeNode water = new DefaultMutableTreeNode("Water");
|
||||
|
||||
// بداخل بعضهم البعض تماماً كما يظهر في نتيجة التشغيل Nodes هنا قمنا بوضع الـ
|
||||
menu.add(food);
|
||||
menu.add(drink);
|
||||
food.add(pizza);
|
||||
food.add(hotDogs);
|
||||
food.add(chicken);
|
||||
food.add(hamburger);
|
||||
drink.add(pepsi);
|
||||
drink.add(cola);
|
||||
drink.add(rani);
|
||||
drink.add(water);
|
||||
|
||||
// لها Root Node كـ menu مع وضع كائن الـ Tree هنا قمنا بتعريف الـ
|
||||
JTree tree = new JTree(menu);
|
||||
|
||||
tree.setToggleClickCount(1); // تظهر ما فيها من نقرة واحدة Node هنا جعلنا أي
|
||||
tree.setEditable(true); // عند النقر على إسمها ثلاث مرات متتالية Node بالإضافة إلى أنه يمكن تغيير إسم أي
|
||||
|
||||
JScrollPane treeScroller = new JScrollPane(tree); // عند الحاجة Scroll Bar لضمان ظهور JScrollPane بداخل كائن من
|
||||
// الكلاس tree هنا وضعنا الـ
|
||||
frame.add(treeScroller); // frame في الـ treeScroller هنا أضفنا الـ
|
||||
frame.setVisible(true); // هنا جعلنا النافذة مرئية
|
||||
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in New Issue