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;
|
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 java.awt.Font;
|
||||||
|
|
||||||
import javax.swing.BorderFactory;
|
import javax.swing.BorderFactory;
|
||||||
|
@ -13,29 +19,64 @@ import javax.swing.border.Border;
|
||||||
// mit Jpanel kann man alle grafischen Bauelemente einsetzen
|
// mit Jpanel kann man alle grafischen Bauelemente einsetzen
|
||||||
public class Jpanel {
|
public class Jpanel {
|
||||||
|
|
||||||
|
|
||||||
public static void main(String[] args) {
|
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);
|
|
||||||
|
|
||||||
|
// هنا قمنا بإنشاء النافذة مع تحديد بعض خصائصها
|
||||||
JFrame frame = new JFrame();
|
JFrame frame = new JFrame("JPanel demo");
|
||||||
|
frame.setSize(400, 400);
|
||||||
//stellt sicher, dass keine automatische Positionierung und Größenanpassung erhalten
|
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
||||||
frame.setLayout(null);
|
frame.setLayout(null);
|
||||||
|
|
||||||
// setSize(width, height)
|
// و وضعنا له حدود و عنوان Layout Manager لا يستخدم أي Panel هنا قمنا بتعريف
|
||||||
frame.setSize(750, 750);
|
JPanel panel = new JPanel(null);
|
||||||
|
panel.setBorder(BorderFactory.createTitledBorder("Add User"));
|
||||||
// setzte einen Überschrift für mein Fenster
|
panel.setBounds(50, 30, 290, 300);
|
||||||
frame.setTitle("Mein erstes Fenster");
|
|
||||||
|
|
||||||
//setVisible(boolean): gibt an, ob mein Fenster sichtbar ist oder nicht
|
|
||||||
frame.setVisible(true);
|
|
||||||
|
|
||||||
|
// Frame في الـ Panel هنا وضعنا الـ
|
||||||
frame.add(panel);
|
frame.add(panel);
|
||||||
|
|
||||||
|
// 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");
|
||||||
|
|
||||||
|
// 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);
|
||||||
|
|
||||||
|
// 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.JFrame;
|
||||||
import javax.swing.JTextField;
|
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 {
|
public class TextEingaben extends JFrame implements ActionListener {
|
||||||
// Instanzvariablen
|
// 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