diff --git a/Programmierung2/src/GUIAnwendungen/Jframe.java b/Programmierung2/src/GUIAnwendungen/Jframe.java new file mode 100644 index 0000000..911b4de --- /dev/null +++ b/Programmierung2/src/GUIAnwendungen/Jframe.java @@ -0,0 +1,40 @@ +package GUIAnwendungen; + +import java.awt.Color; + +import javax.swing.JFrame; + +public class Jframe { + + /* + * - mit der Klasse(JFrame) erzeugen wir ein Fenster + */ + + public static void main(String[] args) { + + // Erstelle ein Fenster + JFrame frame = new JFrame(); + + //setVisible(boolean): gibt an, ob mein Fenster sichtbar ist oder nicht + frame.setVisible(true); + + //setSize(width, height) + frame.setSize(420, 500); + + // setzte einen Überschrift für mein Fenster + frame.setTitle("Mein erstes Fenster"); + + // Schließe das Fenster richtig zu + frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + + // Mein Fenster kann ab jetzt nicht mehr vergößert oder verkleinert werden + frame.setResizable(false); + + //gib das Fenster eine Farbe + frame.getContentPane().setBackground(Color.green); + //oder rgb Farbe + frame.getContentPane().setBackground(new Color(0,0,100)); + + } + +} diff --git a/Programmierung2/src/GUIAnwendungen/Jpanel.java b/Programmierung2/src/GUIAnwendungen/Jpanel.java new file mode 100644 index 0000000..01f2d09 --- /dev/null +++ b/Programmierung2/src/GUIAnwendungen/Jpanel.java @@ -0,0 +1,41 @@ +package GUIAnwendungen; + +import java.awt.Color; +import java.awt.Font; + +import javax.swing.BorderFactory; +import javax.swing.ImageIcon; +import javax.swing.JFrame; +import javax.swing.JLabel; +import javax.swing.JPanel; +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(0, 0, 240, 250); + + // Erstelle ein Fenster + JFrame frame = new JFrame(); + + //stellt sicher, dass keine automatische Positionierung und Größenanpassung erhalten + frame.setLayout(null); + + // setSize(width, height) + frame.setSize(750, 750); + + // setzte einen Überschrift für mein Fenster + frame.setTitle("Mein erstes Fenster"); + + //setVisible(boolean): gibt an, ob mein Fenster sichtbar ist oder nicht + frame.setVisible(true); + + frame.add(panel); + + } + +} diff --git a/Programmierung2/src/GUIAnwendungen/Labels.java b/Programmierung2/src/GUIAnwendungen/Labels.java new file mode 100644 index 0000000..c2af5d3 --- /dev/null +++ b/Programmierung2/src/GUIAnwendungen/Labels.java @@ -0,0 +1,83 @@ +package GUIAnwendungen; + +import java.awt.Color; +import java.awt.Font; + +import javax.swing.BorderFactory; +import javax.swing.ImageIcon; +import javax.swing.JFrame; +import javax.swing.JLabel; +import javax.swing.border.Border; + +/* + * JLabel = ist ein GUI Anzeiger für hinzufügen von Texten und Bildern + */ + +public class Labels { + + public static void main(String[] args) { + // Erstelle eine Label + JLabel label = new JLabel(); + + // Erstelle einen Border für das Fenster + Border b1 = BorderFactory.createLineBorder(Color.GREEN,5); + + // füge den Text auf dem Fenster hinzu + label.setText("Hall Welt"); + + /* + * - Mit diesen zwei Methode positioniere ich den Text auf dem Bild + * 1. setHorizontalTextPosition(JLabel.CENTER); set Text LEFT,CENTER,RIGHT auf dem Bild + * 2. label.setVerticalTextPosition(JLabel.TOP);set Text TOP,CENTER, DOWN auf dem Bild + * - man kann auch integer Werte eingeben + */ + label.setHorizontalTextPosition(JLabel.CENTER); // Horozional + label.setVerticalTextPosition(JLabel.TOP); // vertikal + + // gib für den Schrifft eine Farbe aus der Klasse Color ein + // entweder: + label.setForeground(Color.GREEN); + // oder: + label.setForeground(new Color(0,0,100)); + + //gib Schriftart aus der Klasse Font ein + label.setFont(new Font("MV Boli",Font.PLAIN,20)); + + // verschiebe den Text nach beliebg Position + label.setIconTextGap(20); + + // setze eine Farbe für Background + label.setBackground(Color.black); + label.setOpaque(true); + + //zeige den Border auf dem Fenster + label.setBorder(b1); + + + //füge ein Bild hinzu + ImageIcon image = new ImageIcon("C:\\Users\\obaya\\eclipse-workspace\\OOP\\src\\GUIAnwendungen\\Test.jpg"); + label.setIcon(image); + + + // Erstelle ein Fenster + JFrame frame = new JFrame(); + // setSize(width, height) + frame.setSize(500, 500); + + // setzte einen Überschrift für mein Fenster + frame.setTitle("Mein erstes Fenster"); + + //setVisible(boolean): gibt an, ob mein Fenster sichtbar ist oder nicht + frame.setVisible(true); + + // zeige den Text auf dem Fenster + frame.add(label); + + + + + + + } + +} diff --git a/Programmierung2/src/GUIAnwendungen/Test.java b/Programmierung2/src/GUIAnwendungen/Test.java new file mode 100644 index 0000000..751d22b --- /dev/null +++ b/Programmierung2/src/GUIAnwendungen/Test.java @@ -0,0 +1,9 @@ +package GUIAnwendungen; + +public class Test { + + public static void main(String[] args) { + System.out.println("Hallo Welt!"); + } + +} diff --git a/Programmierung2/src/GUIAnwendungen/Test.jpg b/Programmierung2/src/GUIAnwendungen/Test.jpg new file mode 100644 index 0000000..0c7ff29 Binary files /dev/null and b/Programmierung2/src/GUIAnwendungen/Test.jpg differ diff --git a/Programmierung2/src/GUIAnwendungen/jbutton.java b/Programmierung2/src/GUIAnwendungen/jbutton.java new file mode 100644 index 0000000..5d2027b --- /dev/null +++ b/Programmierung2/src/GUIAnwendungen/jbutton.java @@ -0,0 +1,92 @@ +package GUIAnwendungen; +import java.awt.Color; +import java.awt.Font; + +import javax.swing.BorderFactory; +import javax.swing.ImageIcon; +import javax.swing.JButton; +import javax.swing.JFrame; +import javax.swing.JLabel; +import javax.swing.JPanel; +import javax.swing.border.Border; +import javax.swing.*; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; + +/* + * - ActionListener ist ein Interface Klasse, + * die nur eine abstrakte Methode hat, die mit drücken auf Button reagiert + * + * Also Das Kochrezept: + * 1. Button erstellen: JButton button = new JButton("Text"); + * 2. ActionListener implementieren: Implementiere ActionListener, um die Funktionalität zu definieren. + * 3. ActionListener zum Button hinzufügen: + * 3.1 button.addActionListener(new ActionListener() { ... }); + * 3.2 oder mit separater Methode: button.addActionListener(e -> deineMethode()); + */ +public class jbutton implements ActionListener { + + public static void main(String[] args) { + //1. + JButton button = new JButton(); + button.setBounds(200,100,100,50); + button.setText("Click me"); + button.addActionListener(null); + + // 2. Hinzufügen des ActionListeners zum Button + JLabel label = new JLabel(); + + /* + * Position und Größe des Labels eingeben warum? + * weil ich frame.setLayout(null); aktiviert habe + */ + label.setBounds(150, 50, 100, 50); + /* + * new ActionListener() ist nicht das Erzeugen einer Instanz des Interfaces selbst, + * sondern das Erstellen einer Instanz einer anonymen Klasse, die das ActionListener-Interface implementiert. + */ + button.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + // Dies ist die Aktion, die ausgeführt wird, wenn der Button geklickt wird + clicked(label); + } + }); + + + + + // Erstelle ein Fenster + JFrame frame = new JFrame(); + + //stellt sicher, dass keine automatische Positionierung und Größenanpassung erhalten + frame.setLayout(null); + + // setSize(width, height) + frame.setSize(750, 750); + + // setzte einen Überschrift für mein Fenster + frame.setTitle("Mein erstes Fenster"); + + //setVisible(boolean): gibt an, ob mein Fenster sichtbar ist oder nicht + frame.setVisible(true); + frame.add(label); + frame.add(button); + + + } + + + public static void clicked(JLabel label) { + label.setText("Hall Welt"); + } + + + @Override + public void actionPerformed(ActionEvent e) { + // TODO Auto-generated method stub + + } + + +} diff --git a/Programmierung2/src/module-info.java b/Programmierung2/src/module-info.java index 43298d0..616fb77 100644 --- a/Programmierung2/src/module-info.java +++ b/Programmierung2/src/module-info.java @@ -5,4 +5,5 @@ * */ module Programmierung2 { + requires java.desktop; } \ No newline at end of file