Java Buttons

Java xyrse123

Bekanntes Mitglied
Hallo,
Ich möchte bei meinem Pong Spiel noch Buttons für Spiel starten Pause und so weiter einbauen. Doch ich kann Buttons nur in einem leeren Frame hinzufügen, bei dem Pong Spiel werden sie nicht angezeigt. Kann mir wer einen Tipp geben?
 

Java xyrse123

Bekanntes Mitglied
Java:
Hier der Quellcode:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class Pong extends JPanel {
     
      int x = 30, y = 300; // Anfangskoordinaten Schläger 1
      int Px = 200, Py = 200; //Anfangskoordinaten Ball
      int x2 = 770, y2 = 300; //Anfangskoordinaten Schläger 2
      int dPx = 10, dPy = 10; // Geschwindigkeit Ball
      boolean Spieler1o = false; // Pfeiltaste oben am Anfang Taste nicht gedrückt
      boolean Spieler1u = false; // Pfeiltast unten
      boolean Spieler2o = false;
      boolean Spieler2u = false;

      public Pong() {
          setPreferredSize(new Dimension(800, 600)); // Fenstergröße

          Ball neu = new Ball();
          neu.start(); // Thraed Ball wird gestartet
          Schläger s = new Schläger(); // Thread Schläger wird gestartet
          s.start();
      // Hier wollte ich die Buttons setzten
  
 
      button = new JButton("Button");
     
      Pong.setLayout(null);
button.setBounds(100,20,100,20);
Pong.add(button);
}

      public void paint(Graphics gr) { // beiden Schläger und Ball
          Graphics2D g = (Graphics2D) gr; // werden gezeichnet
          g.setColor(Color.WHITE);
          g.fill(g.getClipBounds()); // damit die Zeichnung überschrieben wird
          g.setColor(Color.BLACK);
          g.fillRect(x, y, 10, 80); // Ball und Schläger werden gezeichnet
          g.fillOval(Px, Py, 30, 30);
          g.fillRect(x2, y2, 10, 80);
      }

      
      class Ball extends Thread { // thread für Ball
          void bewegen() {
              Px = Px + dPx; //die Bewegung
              Py = Py + dPy;

              if (Px < 0) { // Ball prallt von der Wand ab
                  Px = 0;
                  dPx = -dPx;
              }
              if (Py < 0) {  // Ball prallt von der Wand ab
                  Py = 0;
                  dPy = -dPy;
              }
              if (Py > 570) { // Ball prallt von der Wand ab
                  Py = 570;
                  dPy = -dPy;
              }
              if (Px > 770) { // Ball prallt von der Wand ab
                  Px = 770;
                  dPx = -dPx;
              }

              if (Px == 40 && Py >= y && Py <= y + 80) { // Hier soll er vom Schläger1 abprallen
                  Px = 40;
                  dPx = -dPx;               
              }

              if (Px == 740 && Py >= y2 && Py <= y2 + 80) {//// Hier soll er vom Schläger2 abprallen
                                                             
                  Px = 740;
                  dPx = -dPx;
                  dPy = -dPy;
              }
              repaint();
          }

          public void run() { // Thread für Ball

              while (!isInterrupted()) {

                  bewegen();
                  try {
                      Thread.sleep(50);
                  } catch (InterruptedException e) {
                      return;
                  }
              }
          }
      }

      class Schläger extends Thread implements KeyListener {
          Schläger() {
              addKeyListener(this); // KeyListenr wird hinzugefügt
          }

          public void run() {

              while (true) { // solange Spieler Taste drückt
                                  //wird Schläger bewegt
                if (Spieler1o == true) { // Bewegung Schläger1
                      y -= 12;
                  }
                  if (Spieler1u == true) {
                      y += 12;
                  }
                  if (Spieler2o == true) { // Bewegung Schläger2
                      y2 -= 12;
                  }
                  if (Spieler2u == true) {
                      y2 += 12;
                  }
                 
                    if (y2 > 520) { // 600-80 wegen Schlägerlänge
                      y2 = 520; // Damit die Schläger nicht aus dem Bild verschwinden
                  }
                  if (y2 < 0) {
                      y2 = 0;
                  }
                  if (y < 0) {
                      y = 0;
                  }
                  if (y > 520) {
                      y = 520;
                  }
                  repaint();
                  try {
                      Thread.sleep(50);
                  } catch (InterruptedException e) {
                      e.printStackTrace();
                  }
              }
          }

          public void keyPressed(KeyEvent e) { // Spieler 1 hier wird geguckt ob Taste gedrückt
              if (e.getKeyCode() == KeyEvent.VK_W) {
                  Spieler1o = true;
              }
              if (e.getKeyCode() == KeyEvent.VK_S) {
                  Spieler1u = true;
              }
             
              if (e.getKeyCode() == KeyEvent.VK_UP) { // Spieler2 hier wird geguckt ob Taste gedrückt
                  Spieler2o = true;
              }
              if (e.getKeyCode() == KeyEvent.VK_DOWN) {
                  Spieler2u = true;
              }
          }

          public void keyReleased(KeyEvent e) { // Hier ob Taste wieder losgelassen
              // wenn ja stoppt Schlägerbewegung
            if (e.getKeyCode() == KeyEvent.VK_W) {
                  Spieler1o = false;
              }
              if (e.getKeyCode() == KeyEvent.VK_S) {
                  Spieler1u = false;
              }
              if (e.getKeyCode() == KeyEvent.VK_UP) {
                  Spieler2o = false;
              }
              if (e.getKeyCode() == KeyEvent.VK_DOWN) {
                  Spieler2u = false;
              }
          }

          public void keyTyped(KeyEvent e) {
          }
      }
}


und die Hauptklasee:

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class Fenster extends JFrame {
   private Pong pong = new Pong();

   public Fenster() {
     setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
     getContentPane().add(pong);

     pong.PositionBall();
     pack();
     getRootPane();setVisible(true);

     pong.PositionSchläger2();
     pong.PositionSchläger1();
     pong.setFocusable(true);

   }

   public static void main(String[] args) {
     new Fenster();

   }
}
 

Java xyrse123

Bekanntes Mitglied
Ich wollte auch noch fragen wie ich den Hintergrund ändern kann. Ich hatte das schon mit setBackground() versucht, doch es hat nicht funktioniert.
 

Mülchmann

Mitglied
Hallo xyrse123,

Java:
 button = new JButton("Button");
    
      Pong.setLayout(null);
button.setBounds(100,20,100,20);
Pong.add(button);


als erstes fehlt das JButton vor dem Button, damit es überhaupt funktionieren kann und als weiteren Tipp würde ich sagen, den Button nicht Button zu nennen.
Java:
JButton button = new JButton("Start/Pause");

Zudem benötigst du kein Pong mehr, da du dich ja schon darauf beziehst.
Java:
add(button);
oder
Java:
this.add(button);
reicht da vollkommen

Aber da dein Pong noch nicht richtig funktioniert, würde ich mich erstmal nicht mit irgendwelchen Buttons beschäftigen, sondern es erstmal zum laufen bringen.
Und als weiteren Tipp würde ich dir empfehlen nicht mit setBounds zu arbeiten. Nutz lieber ein ordentliches Layout und füge den Button darüber in die Oberfläche ein.


Gruß
Mülchmann
 

Java xyrse123

Bekanntes Mitglied
Hallo,
Ich habe die Sachen verbessert doch es funktioniert immer noch nicht. Und was meinst du mit nicht richtig funktioniert das meiste funktioniert schon, ich muss nur noch das Spiel auf Ausgangsstellung bei einem Punkt setzten und das dass Spiel erst startet wenn ich den Button
"Start" drücke.

Gruß
xyrse123
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
xFearofdarkness Feinde überlappen sich in Java Spiel Spiele- und Multimedia-Programmierung 3
A Minecraft Java Buch fehlermeldung Spiele- und Multimedia-Programmierung 61
yakazuqi Minecraft java.lang.Error: Watchdog Spiele- und Multimedia-Programmierung 3
L Fehler bei "Nochmal Spielen" (Java) Spiele- und Multimedia-Programmierung 1
N Minecraft Java Error Spiele- und Multimedia-Programmierung 6
M "Java Datei" Cannot be resolved to a variable Spiele- und Multimedia-Programmierung 2
1Spinne Minecraft Fabric Modding Java Error Spiele- und Multimedia-Programmierung 2
Joris Minecraft Minecraft Java Server Spiele- und Multimedia-Programmierung 6
Shanic Minecraft Minecraft Forge Server "Falsche Java Version" Spiele- und Multimedia-Programmierung 6
O Browser-basiertes online Pokerspiel mit Java Spiele- und Multimedia-Programmierung 1
M Spiel Mühle-Programmierung Java Spiele- und Multimedia-Programmierung 9
G VST-Plugins in Java verwenden Spiele- und Multimedia-Programmierung 0
P Audio Visualizer mit OpenGL in Java? Spiele- und Multimedia-Programmierung 4
P Snake Java Hilfe Spiele- und Multimedia-Programmierung 4
D Minecraft [Minecraft] Java Start Fehler (Core-Dump) Spiele- und Multimedia-Programmierung 1
T Welche packages aus der java api doku ist hilfreich zur Android Spieleprogrammierung Spiele- und Multimedia-Programmierung 2
A Programmieren eines Memorys mit Java (in Eclipse) Spiele- und Multimedia-Programmierung 5
L Sound in Java Spiel Spiele- und Multimedia-Programmierung 5
C Java findet FluidSynth nicht Spiele- und Multimedia-Programmierung 2
I Java Andere Fenster in Borderless-Mode setzen Spiele- und Multimedia-Programmierung 16
leon_krys Java-Bußgeldrechner Spiele- und Multimedia-Programmierung 5
G [Java/KryoNet/LibGDX] Mutliplayer Packet Frage Spiele- und Multimedia-Programmierung 2
P Website mit Java Backend? Spiele- und Multimedia-Programmierung 1
D Java Bild bewegen funktioniert nicht Spiele- und Multimedia-Programmierung 8
J Fertigungstechnik.. PLS HALP.. Quellcode vom Text in java-Klasse speichern Spiele- und Multimedia-Programmierung 2
E Kalah Java Implementation Spiele- und Multimedia-Programmierung 1
G [Java] Vereinfachung von Boolean Abfragen Spiele- und Multimedia-Programmierung 3
G [LibGDX/Java] ArrayList Object Speicher Spiele- und Multimedia-Programmierung 3
T Java 3D Spiele- und Multimedia-Programmierung 2
A Spielfelder erstellen mit Jogl Java durch ein Koordinaten Array Spiele- und Multimedia-Programmierung 1
T Java Kalender Spiele- und Multimedia-Programmierung 5
Ice4P4rty Java Optische Oberfläche Spiele- und Multimedia-Programmierung 2
MABY Eine mp3 Datei in Java abspielen Spiele- und Multimedia-Programmierung 14
D Java Bomberman Probleme java.lang.NullPointerException Spiele- und Multimedia-Programmierung 1
N Spiele-Menü in Java Spiele- und Multimedia-Programmierung 9
J HDMI Ausgänge mit Java programmieren? Spiele- und Multimedia-Programmierung 18
H Yu-Gi-Oh! Mit Java was tun? Spiele- und Multimedia-Programmierung 6
G Component System Java 2D Game LibGDX Spiele- und Multimedia-Programmierung 6
S Pong java.lang.StackOverflowError Spiele- und Multimedia-Programmierung 3
C Java aus Klasse rausgehen Spiele- und Multimedia-Programmierung 2
MaxG. Java Internet Radio Spiele- und Multimedia-Programmierung 6
G [Java Server] Allgemeine Frage zum Thema Networking in Videospielen Spiele- und Multimedia-Programmierung 15
P java.lang.NoClassDefFoundError: in Greenfoot Spiele- und Multimedia-Programmierung 0
G Java Achsen invertieren Spiele- und Multimedia-Programmierung 2
G Java 2D Spiel mit LWJGL verbinden Spiele- und Multimedia-Programmierung 1
$ Einstieg in Java Game Development Spiele- und Multimedia-Programmierung 11
BraunBerry Java Game Pixel "einfärben" Spiele- und Multimedia-Programmierung 6
BraunBerry Java Game verbesserte Kollisionserkennung Spiele- und Multimedia-Programmierung 18
BraunBerry Java Game Waypoint System Spiele- und Multimedia-Programmierung 3
S Hilfe bei Java Gui Spiele- und Multimedia-Programmierung 2
D Java sound pulseaudio Spiele- und Multimedia-Programmierung 0
David Schwarzbeck Java 3 dimensionale Kollisions Abfrage Spiele- und Multimedia-Programmierung 2
M Gesellschaftsspiel Mühle in Java programmieren Spiele- und Multimedia-Programmierung 3
beatles Java Minesweeper - OS X und Win7 Unterschied Spiele- und Multimedia-Programmierung 2
D Minecraft Java JDK installiert - Minecraft läuft nichtmehr in 64 Bit Spiele- und Multimedia-Programmierung 2
E TMX - Dateien in Java laden Spiele- und Multimedia-Programmierung 1
K Erstellen eines Fotoalbums mit Java Spiele- und Multimedia-Programmierung 8
windl MoviePlayer in Java Spiele- und Multimedia-Programmierung 0
S 2D-Render Probleme LWJGL 2 (Java) Spiele- und Multimedia-Programmierung 1
F Klausurersatz: Ein Java-Programm erstellen und dieses präsentieren. Spiele- und Multimedia-Programmierung 2
E Java Jump and Run Map zu groß Spiele- und Multimedia-Programmierung 14
P java lwjgl Game Spiele- und Multimedia-Programmierung 0
J programm mit java-plugin Spiele- und Multimedia-Programmierung 2
D Java Webgame, welche Frameworks oder Techs sind von Nöten? Spiele- und Multimedia-Programmierung 5
P Java 2D Bug? Spiele- und Multimedia-Programmierung 8
T Problem mit Eclipse (java)-(minecraft) Spiele- und Multimedia-Programmierung 3
R Java App sendet Midi Daten über Flash Spiele- und Multimedia-Programmierung 3
O Java Zeile aus Textdatei zufällig ausgeben Spiele- und Multimedia-Programmierung 8
K Bestes Bildformat für Spielegrafiken und deren Einbindung in Java Spiele- und Multimedia-Programmierung 2
D JAVA Basiertes Spiel aus dem Internet in eigenem Client laden Spiele- und Multimedia-Programmierung 1
T Alle Referenzen zu einer Klasse aus Java Bytecode ersetzt, JVM sucht trotzdem diese Klasse Spiele- und Multimedia-Programmierung 1
J Java Kollisionsabfrage Spiele- und Multimedia-Programmierung 21
Flo. android java tastatureingaben abfangen. Spiele- und Multimedia-Programmierung 1
J Java Steuerberechnung hilfe Spiele- und Multimedia-Programmierung 17
C Export als .jar funktioniert nicht richtig (JAVA 3D) Spiele- und Multimedia-Programmierung 5
P Java Grafiken mit Rechnungen verknüpfen Spiele- und Multimedia-Programmierung 4
U Minecraft Mit Java auf Minecraft Server anmelden Spiele- und Multimedia-Programmierung 11
F Das sag mir einer Java ist plattform unabhänig ! Spiele- und Multimedia-Programmierung 10
C virtueller stereomix (java sound API) Spiele- und Multimedia-Programmierung 0
S Engine2D - Java 2D Engine Spiele- und Multimedia-Programmierung 20
J Java Game performance Probleme Spiele- und Multimedia-Programmierung 7
C Java Kollisionserkennung Spiele- und Multimedia-Programmierung 4
U Blender in Java Spiele- und Multimedia-Programmierung 8
J Java Fussballspiel Player-KI in der Bewegungsphase Spiele- und Multimedia-Programmierung 4
K Java 15/Slide/Boss Puzzle Spiele- und Multimedia-Programmierung 2
T Java 3D - Step oder IGES Spiele- und Multimedia-Programmierung 1
H 3D Spiele mit Java - Diskussion Spiele- und Multimedia-Programmierung 35
X Kleines Problem mit Java Reflections und einem eigenen Eventhandler Spiele- und Multimedia-Programmierung 1
M Bilder in Java Spiele- und Multimedia-Programmierung 7
A Minecraft Java Ubuntu Minecraft Server startet nicht - ERROR (SIGSEGV) Spiele- und Multimedia-Programmierung 7
N Minecraft java lernen minecraft Spiele- und Multimedia-Programmierung 20
J 2d Ansicht mit Java 3d Spiele- und Multimedia-Programmierung 13
F Abbyy finereader aus java starten, Ergebnis zurück? Spiele- und Multimedia-Programmierung 2
P Zeichenübungen mit Java Spiele- und Multimedia-Programmierung 4
M Minecraft weitere Java Entwickler für minecraft projekt gesucht Spiele- und Multimedia-Programmierung 0
I Minecraft Java programmierungs fehler "MineCraft" Spiele- und Multimedia-Programmierung 6
J Java 2D Sicht Spiele- und Multimedia-Programmierung 13
H wma Datei abspielen: java.io.IOException: Resetting to invalid mark Spiele- und Multimedia-Programmierung 11
M Würdet ihr sagen Java Applets eignen sich gut Spiele- und Multimedia-Programmierung 5
F java browsergame entwickeln Spiele- und Multimedia-Programmierung 18

Ähnliche Java Themen

Neue Themen


Oben