T
ThunderDragon
Gast
Guten Tag, ich habe angefangen Pong zu Programmieren. Einfach nur um ein bisschen weiter zu Üben.
Jetzt habe ich das Problem das mein KeyListener nicht reagiert und ich komme im moment nicht drauf wieso.
Wäre nett wenn man vll. jemand drüberschaun kann. Im prinzip will ich es erstmal hinbekommen das ich die Koordinate eines schlägers erhöhe oder reduziere um dann einen repaint im Thread zu machen damit dieser sich bewegt :-/
Jetzt habe ich das Problem das mein KeyListener nicht reagiert und ich komme im moment nicht drauf wieso.
Wäre nett wenn man vll. jemand drüberschaun kann. Im prinzip will ich es erstmal hinbekommen das ich die Koordinate eines schlägers erhöhe oder reduziere um dann einen repaint im Thread zu machen damit dieser sich bewegt :-/
Java:
package JW.prog2.exercises.set13.gui;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import JW.prog2.exercises.set13.game.Schläger;
import JW.prog2.exercises.set13.game.Spiel;
public class PongGame
{
JTextField playerOne;
JTextField playerTwo;
public JFrame frame;
static PongViewer pongPanel;
Schläger schläger1;
Schläger schläger2;
Spiel game;
public static void main(String[] args)
{
PongGame test1 = new PongGame();
test1.start();
}
public void start()
{
schläger1 = new Schläger(60,10,30,270);
schläger2 = new Schläger(60,10,560,270);
frame = new JFrame("Pong Game");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
game = new Spiel();
JPanel panel = new JPanel();
pongPanel = new PongViewer(schläger1, schläger2);
frame.add(panel, BorderLayout.NORTH);
frame.add(pongPanel, BorderLayout.CENTER);
//pongPanel.addKeyListener(new AppKeyListener());
frame.addKeyListener(new AppKeyListener());
JButton newGameButton = new JButton("New Game");
newGameButton.setBackground(Color.BLACK);
newGameButton.setForeground(Color.GREEN);
playerOne = new JTextField();
playerTwo = new JTextField();
playerOne.setEditable(false);
playerTwo.setEditable(false);
playerOne.setPreferredSize(new Dimension(30,20));
playerTwo.setPreferredSize(new Dimension(30,20));
playerOne.setBackground(Color.BLACK);
playerOne.setForeground(Color.GREEN);
playerTwo.setBackground(Color.BLACK);
playerTwo.setForeground(Color.GREEN);
playerTwo.setText("0");
playerOne.setText("0");
JLabel p1Label = new JLabel("Player 1 : ");
JLabel p2Label = new JLabel("Player 2 : ");
p1Label.setBackground(Color.BLACK);
p1Label.setForeground(Color.GREEN);
p2Label.setBackground(Color.BLACK);
p2Label.setForeground(Color.GREEN);
panel.setBackground(Color.BLACK);
panel.add(p1Label);
panel.add(playerOne);
panel.add(p2Label);
panel.add(playerTwo);
panel.add(newGameButton);
new GameThread().start();
frame.setVisible(true);
frame.setMinimumSize(new Dimension(600,600));
}
class AppKeyListener implements KeyListener
{
public void keyPressed(KeyEvent e)
{
System.out.println("hallo hallo hallo hallo");
if (e.getKeyCode() == KeyEvent.VK_UP)
{
pongPanel.DrawUp();
System.out.println("test test test");
}
else if (e.getKeyCode() == KeyEvent.VK_DOWN)
pongPanel.DrawUp();
if (e.getKeyCode() == KeyEvent.VK_D)
pongPanel.DrawUp();
}
@Override
public void keyReleased(KeyEvent e) {
}
@Override
public void keyTyped(KeyEvent e) {
}
}
class GameThread extends Thread
{
public void run()
{
while(game.getWinner() == true)
{
pongPanel.repaint();
}
}
}
}
Java:
package JW.prog2.exercises.set13.gui;
import java.awt.Color;
import java.awt.Graphics;
import java.util.Observable;
import java.util.Observer;
import javax.swing.JPanel;
import JW.prog2.exercises.set13.game.Schläger;
@SuppressWarnings("serial")
public class PongViewer extends JPanel implements Observer
{
Schläger schläger1;
Schläger schläger2;
public PongViewer(Schläger pongSchläger, Schläger pongSchläger2)
{
this.schläger1 = pongSchläger;
this.schläger2 = pongSchläger2;
setBackground(Color.BLACK);
}
@Override
public void update(Observable arg0, Object arg1)
{
// TODO Auto-generated method stub
}
public void paintComponent(Graphics g)
{
super.paintComponent(g);
Graphics g2 = (Graphics) g;
g2.setColor(Color.green);
g2.drawLine(40, 40, 560, 40);
g2.drawLine(40, 460, 560, 460);
g2.drawLine(40,40,40,460);
g2.drawLine(300,40,300,460);
g2.drawLine(560,460,560,40);
g.fillRect(schläger1.getX(), schläger1.getY(),schläger1.getWidth(),schläger1.getLength());
g.fillRect(schläger2.getX(), schläger2.getY(),schläger2.getWidth(),schläger2.getLength());
}
public void DrawUp()
{
schläger1.move(-1);
System.out.println("sdawdaswads " + schläger1.getY());
}
public void DrawDown()
{
schläger1.move(10);
}
public void DrawStop()
{
schläger1.move(10);
}
}