From 16a83eafd67581551408193e8b263db147596a14 Mon Sep 17 00:00:00 2001 From: obaya Date: Tue, 13 Aug 2024 20:26:21 +0200 Subject: [PATCH] FlowLayout klasse --- .../src/GUIAnwendungen/Borderlayout.java | 82 +++++++++++++++++++ .../src/GUIAnwendungen/Flowlayout.java | 64 +++++++++++++++ Programmierung2/src/GUIAnwendungen/Test.java | 9 -- .../src/GUIAnwendungen/jbutton.java | 5 +- 4 files changed, 150 insertions(+), 10 deletions(-) create mode 100644 Programmierung2/src/GUIAnwendungen/Borderlayout.java create mode 100644 Programmierung2/src/GUIAnwendungen/Flowlayout.java delete mode 100644 Programmierung2/src/GUIAnwendungen/Test.java diff --git a/Programmierung2/src/GUIAnwendungen/Borderlayout.java b/Programmierung2/src/GUIAnwendungen/Borderlayout.java new file mode 100644 index 0000000..5d72e5f --- /dev/null +++ b/Programmierung2/src/GUIAnwendungen/Borderlayout.java @@ -0,0 +1,82 @@ +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); + + } + +} diff --git a/Programmierung2/src/GUIAnwendungen/Flowlayout.java b/Programmierung2/src/GUIAnwendungen/Flowlayout.java new file mode 100644 index 0000000..7e512c7 --- /dev/null +++ b/Programmierung2/src/GUIAnwendungen/Flowlayout.java @@ -0,0 +1,64 @@ +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); + } + + +} diff --git a/Programmierung2/src/GUIAnwendungen/Test.java b/Programmierung2/src/GUIAnwendungen/Test.java deleted file mode 100644 index 751d22b..0000000 --- a/Programmierung2/src/GUIAnwendungen/Test.java +++ /dev/null @@ -1,9 +0,0 @@ -package GUIAnwendungen; - -public class Test { - - public static void main(String[] args) { - System.out.println("Hallo Welt!"); - } - -} diff --git a/Programmierung2/src/GUIAnwendungen/jbutton.java b/Programmierung2/src/GUIAnwendungen/jbutton.java index c48b087..832a87c 100644 --- a/Programmierung2/src/GUIAnwendungen/jbutton.java +++ b/Programmierung2/src/GUIAnwendungen/jbutton.java @@ -29,7 +29,8 @@ public class jbutton implements ActionListener { public static void main(String[] args) { //1. JButton button = new JButton(); - button.setBounds(200,100,100,50); + // x y width height + button.setBounds(100,100,200, 50); button.setText("Click me"); button.addActionListener(null); @@ -72,6 +73,8 @@ public class jbutton implements ActionListener { frame.setVisible(true); frame.add(label); frame.add(button); + // andere Möglichkeit, button auf Fenster zu zeigen + // frame.add(new JButton("name")) }