Hallo mal wieder,
Ich denke die Frage ist geklärt. Ich komme mit Listenern einfach nicht zurecht
Was ist daran falsch?
Klasse Figur:
Ich denke die Frage ist geklärt. Ich komme mit Listenern einfach nicht zurecht
Was ist daran falsch?
Java:
import java.awt.Graphics;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import javax.swing.JLabel;
import javax.swing.JButton;
import java.awt.Image;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import java.util.Random;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.Font;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
public class MyPanel extends JPanel implements ActionListener,KeyListener
{
JTextArea t1;
JTextArea t2;
JLabel l3;
JButton wuerfel;
Image Ispielbrett;
Image Irot;
Image Iblau;
Hintergrund spielbrett;
Figur figur1;
Figur figur2;
Figur figur3;
Figur figur4;
Figur aktuelleFigur1;
Figur aktuelleFigur2;
String aktuelleFarbe;
public MyPanel()
{
setLayout(null);
setSize(590,710);
aktuelleFarbe = StartwertFuerSpieler();
loadImages();
spielbrett = new Hintergrund(Ispielbrett,0,0);
wuerfel = new JButton("Wuerfel");
wuerfel.setBounds(0,585,100,100);
wuerfel.addActionListener(this);
t1 = new JTextArea();
t1.setBounds(485,585,100,100);
t1.setFont(new Font("Verdana", 0, 72));
t1.setEditable(false);
t2 = new JTextArea();
t2.setBounds(300,585,100,100);
t2.setFont(new Font("Verdana", 0, 72));
t2.setEditable(false);
l3 = new JLabel();
l3.setBounds(110 ,585,200,100);
l3.setFont(new Font("Verdana", 0, 20));
l3.setText("Aktuelle Figuren:");
figur1 = new Figur(Irot,155,155); // Ein Feld ist 57!
figur2 = new Figur(Iblau,383,155); // Home-Feld ist auf: 269/269
figur3 = new Figur(Irot,155,383);
figur4 = new Figur(Iblau,383,383);
figur1.addKeyListener(this);
figur2.addKeyListener(this);
figur3.addKeyListener(this);
figur4.addKeyListener(this);
add(t1);
add(t2);
add(l3);
add(wuerfel);
}
@Override
public void paintComponent(Graphics g)
{
spielbrett.paintComponent(g);
figur1.paintComponent(g);
figur2.paintComponent(g);
figur3.paintComponent(g);
figur4.paintComponent(g);
}
public void loadImages() {
try {
Iblau = ImageIO.read(new File("figurblau.png"));
Irot = ImageIO.read(new File("figurrot.png"));
Ispielbrett = ImageIO.read(new File("spielbrett.png"));
} catch(IOException ex) {
System.out.println("Fehler: " + ex.toString());
}
}
public void druckeGewinner() {
if(figur1.gewonnen() == true) {
System.out.println("Rot hat gewonnen");
}
if(figur2.gewonnen() == true) {
System.out.println("Blau hat gewonnen");
}
if(figur3.gewonnen() == true) {
System.out.println("Rot hat gewonnen");
}
if(figur4.gewonnen() == true) {
System.out.println("Blau hat gewonnen");
}
}
public void kriegeAktuellenSpieler() {
Random r = new Random();
int zufall1 = r.nextInt(4) + 1;
int zufall2 = r.nextInt(4) + 1;
if(zufall1 == 1) {
t1.setText(" 1");
aktuelleFigur1 = figur1;
aktuelleFigur1.addKeyListener(this);
}
else if(zufall1 == 2) {
t1.setText(" 2");
aktuelleFigur1 = figur2;
}
else if(zufall1 == 3) {
t1.setText(" 3");
aktuelleFigur1 = figur3;
}
else if(zufall1 == 4) {
t1.setText(" 4");
aktuelleFigur1 = figur4;
}
if(zufall2 == 1) {
t2.setText(" 1");
aktuelleFigur2 = figur1;
}
else if(zufall2 == 2) {
t2.setText(" 2");
aktuelleFigur2 = figur2;
}
else if(zufall2 == 3) {
t2.setText(" 3");
aktuelleFigur2 = figur3;
}
else if(zufall2 == 4) {
t2.setText(" 4");
aktuelleFigur2 = figur4;
}
}
public void actionPerformed(ActionEvent e) {
if(e.getSource() == wuerfel) {
kriegeAktuellenSpieler();
}
}
public void keyReleased(KeyEvent e) {
}
public void keyPressed(KeyEvent e) {
if(aktuelleFigur1 != null && aktuelleFigur2 != null) {
if(e.getKeyCode() == KeyEvent.VK_RIGHT) {
aktuelleFigur1.x += 57;
aktuelleFigur1.repaint();
aktuelleFigur2.x += 57;
aktuelleFigur2.repaint();
}
else if(e.getKeyCode() == KeyEvent.VK_LEFT) {
aktuelleFigur1.x -= 57;
aktuelleFigur2.x -= 57;
}
else if(e.getKeyCode() == KeyEvent.VK_UP) {
aktuelleFigur1.y -= 57;
aktuelleFigur2.y -= 57;
}
else if(e.getKeyCode() == KeyEvent.VK_DOWN) {
aktuelleFigur1.y += 57;
aktuelleFigur1.y += 57;
}
}
}
public void keyTyped(KeyEvent e) {
}
String StartwertFuerSpieler() {
Random r = new Random();
int zufall = r.nextInt(2) + 1;
String farbe = "";
if (zufall == 1) {
farbe = "Rot";
}
else if(zufall == 2) {
farbe = "Blau";
}
return farbe;
}
void setzeNeuenSpieler() {
if(aktuelleFarbe.equalsIgnoreCase("Rot")) {
aktuelleFarbe = "Blau";
}
else if(aktuelleFarbe.equalsIgnoreCase("Blau")) {
aktuelleFarbe = "Rot";
}
}
}
Klasse Figur:
Java:
import javax.swing.JComponent;
import java.awt.Image;
import java.awt.Graphics;
public class Figur extends JComponent
{
int x;
int y;
Image image;
public Figur(Image i, int startX, int startY)
{
this.image = i;
this.x = startX;
this.y = startY;
requestFocus();
setFocusable(true);
}
public void paintComponent(Graphics g) {
g.drawImage(image,x,y,this );
}
boolean gewonnen() {
if(x == 155 && y == 155) {
return true;
}
else {
return false;
}
}
}
Zuletzt bearbeitet: