diff --git a/Programmierung2/src/Übungen/PongGame.java b/Programmierung2/src/Übungen/PongGame.java new file mode 100644 index 0000000..08c3a2f --- /dev/null +++ b/Programmierung2/src/Übungen/PongGame.java @@ -0,0 +1,125 @@ +package Übungen; + +import javax.swing.*; +import java.awt.*; +import java.awt.event.KeyEvent; +import java.awt.event.KeyListener; + +public class PongGame { + + static int xRect1 = 10; + static int yRect1 = 10; + static int bewegung = 1; + + public static void main(String[] args) { + JFrame window = new JFrame(); + window.setSize(700, 700); + window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + window.setTitle("PongGame"); + window.setLayout(null); + + + + + + + + + + JPanel rect1 = new JPanel() { + @Override + public void paintComponent(Graphics g) { + super.paintComponent(g); // Sicherstellen, dass das Panel korrekt gezeichnet wird + g.setColor(Color.white); + g.fillRect(0, 0, 10, 90); + } + }; + rect1.setBounds(xRect1, yRect1, 10, 90); + + + + Timer timer = new Timer(700, e -> { + window.addKeyListener(new KeyListener() { + @Override + public void keyTyped(KeyEvent e) { + + } + + @Override + public void keyPressed(KeyEvent e) { + if (e.getKeyCode() ==KeyEvent.VK_DOWN) { + // Bewege das Rechteck + yRect1 += bewegung ; + + // Aktualisiere dann die Position des Panels + rect1.setBounds(xRect1, yRect1, 10, 90); + // Fordere das Panel auf, sich neu zu zeichnen + rect1.repaint(); + } + + } + + @Override + public void keyReleased(KeyEvent e) { + + } + }); + + + }); + + // Starte den Timer + timer.start(); + + + + // Setze den Fokus auf das Fenster, um die KeyListener zu aktivieren + window.setFocusable(true); + window.requestFocusInWindow(); + + + + + + + + + + + + + + + + + + + + + JPanel rect2 = new JPanel() { + @Override + public void paintComponent(Graphics g) { + super.paintComponent(g); + g.setColor(Color.white); + g.fillRect(0, 0, 10, 90); + } + }; + rect2.setBounds(650, 10, 10, 90); + + window.add(rect1); + window.add(rect2); + + /* + * JFrame besteht aus mehreren Schichten: Eine davon ist das ContentPane, welches der Bereich ist, in den die meisten Komponenten wie JPanel, JButton, etc. + * eingefügt werden. Die Methode getContentPane() gibt dieses ContentPane zurück, das dann bearbeitet werden kann. + * Hintergrundfarbe setzen: Wenn du die Hintergrundfarbe des gesamten Fensters auf Schwarz setzen möchtest, + * ohne die JPanel-Komponenten selbst zu beeinflussen, setzt du die Hintergrundfarbe des ContentPane. + */ + window.getContentPane().setBackground(Color.black); + window.setVisible(true); + } + + } + + +