Hallo,
ich sitze jetzt schon seit Stunden an meinem Problem, komme irgendwie nicht weiter. Folgendes habe ich geplant:
Klasse A:
Überprüfung ob variable 1 aus Klasse B folgenden Wert enthält, dann führe dies und das aus
Klasse B:
Variable 1 wird geändert durch if/else etc. Prüfungen
Bereitgestellt durch getter/setter Methoden
Nun würde ich gerne wissen wie ich die Variable 1 in der Klasse A überprüfen kann ob diese in der Klasse B geändert wurde. Ich hoffe ihr versteht mein Problem.
Vllt. gibt es ja auch elegantere Methoden dazu. Ich hoffe es kann mir jemand helfen.
Hier mein QT:
Klasse PingPong (A):
Klasse MainDrawing (B):
Nun soll ich klasse "PingPong" die Variable "gamestatus" der Klasse "MainDrawing" überprüft werden und bei änderung ausgegeben werden.
LG
Purzel
ich sitze jetzt schon seit Stunden an meinem Problem, komme irgendwie nicht weiter. Folgendes habe ich geplant:
Klasse A:
Überprüfung ob variable 1 aus Klasse B folgenden Wert enthält, dann führe dies und das aus
Klasse B:
Variable 1 wird geändert durch if/else etc. Prüfungen
Bereitgestellt durch getter/setter Methoden
Nun würde ich gerne wissen wie ich die Variable 1 in der Klasse A überprüfen kann ob diese in der Klasse B geändert wurde. Ich hoffe ihr versteht mein Problem.
Vllt. gibt es ja auch elegantere Methoden dazu. Ich hoffe es kann mir jemand helfen.
Hier mein QT:
Klasse PingPong (A):
Java:
package pingpong;
import java.awt.Graphics;
import java.awt.GridLayout;
import java.awt.LayoutManager;
import javax.swing.JApplet;
import javax.swing.JLabel;
import javax.swing.JTextField;
public class PingPong extends JApplet implements Runnable {
private static final long serialVersionUID = 1L;
LayoutManager layout;
Thread thread;
public void init() {
}
public void start() {
if(thread == null) {
thread = new Thread(this);
thread.start();
}
layout = new GridLayout(0, 1);
setLayout(layout);
MainDrawing draw = new MainDrawing();
add(draw);
System.out.println("getGamestatus: " + draw.getGamestatus());
if(draw.getGamestatus() == 0) {
System.out.println("Spiel zu Ende!");
add(new JLabel("Ihr Name: "));
add(new JTextField(""));
}
}
@SuppressWarnings("deprecation")
public void stop() {
if(thread != null && thread.isAlive()) {
thread.stop();
thread = null;
}
}
public void destroy() {
}
public void run() {
while(true) {
repaint();
try {
Thread.sleep(15);
} catch(InterruptedException e) {
}
}
}
}
Klasse MainDrawing (B):
Java:
package pingpong;
import java.awt.Event;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.JButton;
import javax.swing.JPanel;
public class MainDrawing extends JPanel implements MouseListener, KeyListener {
private static final long serialVersionUID = 1L;
private Image dbImage;
private Graphics dbg;
int kugel_xpos = 0;
int kugel_ypos = 0;
boolean kugel_direction_xpos = true;
boolean kugel_direction_ypos = true;
int balken_hoehe = 50;
int balken_xpos = 5;
int balken_ypos = 5;
int points = -1;
int counter;
int gamestatus = -1;
public MainDrawing() {
addMouseListener((MouseListener)this);
addKeyListener((KeyListener)this);
setFocusable(true);
setFocusTraversalKeysEnabled(false);
}
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2d = (Graphics2D)g;
//g2d.drawRect(balken_xpos, balken_ypos, 20, 20);
if(gamestatus == -1) {
gamestop(g2d);
} else if(gamestatus == 1) {
gamestart(g2d);
for(int i = 999999; i >= 0; i--) {
counter -= i;
if(gamestatus == 1 && counter == 0) {
gamestatus = 0;
}
}
} else if(gamestatus == 0) {
gameend(g);
}
}
public void update(Graphics g) {
// Initialisierung des DoubleBuffers
if(dbImage == null) {
dbImage = createImage (this.getSize().width, this.getSize().height);
dbg = dbImage.getGraphics ();
}
// Bildschirm im Hintergrund löschen
dbg.setColor (getBackground ());
dbg.fillRect (0, 0, this.getSize().width, this.getSize().height);
// Auf gelöschten Hintergrund Vordergrund zeichnen
dbg.setColor (getForeground());
paint (dbg);
// Nun fertig gezeichnetes Bild Offscreen auf dem richtigen Bildschirm anzeigen
g.drawImage (dbImage, 0, 0, this);
}
public void mouseClicked(MouseEvent e) {
if(gamestatus == -1 && e.getClickCount() == 2) {
gamestatus = 1;
}
}
public void mousePressed(MouseEvent e) {
}
public void mouseReleased(MouseEvent e) {
}
public void mouseEntered(MouseEvent e) {
}
public void mouseExited(MouseEvent e) {
}
public void keyPressed(KeyEvent e) {
// Taste nach oben
if (e.getKeyCode() == 38) {
balken_ypos -= 1;
// Taste nach unten
} else if (e.getKeyCode() == 40) {
balken_ypos += 1;
} else {
System.out.println("Key: " + e.getKeyCode());
}
}
public void keyTyped(KeyEvent e) {
}
public void keyReleased(KeyEvent e) {
}
public void gamestart(Graphics g) {
g.drawRect(0, 0, 153, 153);
g.drawString(points + " Punkte", 153 / 2, 15);
g.drawString(counter + " s", 153 / 2, 25);
//g.drawString("Balken Startposition y: " + balken_ypos, 25, 25);
//g.drawString("Balken Endposition: " + (balken_ypos + balken_hoehe), 25, 35);
g.fillRect(balken_xpos, balken_ypos, 15, balken_hoehe);
g.fillOval(kugel_xpos, kugel_ypos, 15, 15);
if(kugel_direction_xpos == true) {
kugel_xpos += 1;
if(kugel_xpos == 140) {
kugel_direction_xpos = false;
}
} else {
kugel_xpos -= 1;
if(kugel_xpos == balken_xpos + 14) {
kugel_direction_xpos = true;
}
}
if(kugel_direction_ypos == true) {
kugel_ypos += 1;
if(kugel_ypos == 140) {
kugel_direction_ypos = false;
}
} else {
kugel_ypos -= 1;
if(kugel_ypos == 0) {
kugel_direction_ypos = true;
}
}
if(kugel_ypos > balken_ypos && kugel_ypos < (balken_ypos + balken_hoehe) && kugel_xpos == balken_xpos + 14) {
points++;
} else if(kugel_ypos != balken_ypos) {
}
}
public void gamestop(Graphics g) {
g.drawString("Bitte Spiel mit Doppelklick starten!", 0, 153 / 2);
}
public void gameend(Graphics g) {
g.drawString("Das Spiel ist zu Ende, ", 10, 75);
g.drawString("ihre Punkte: " + points, 10, 90);
}
public int getGamestatus() {
return gamestatus;
}
public void setGamestart(int gamestatus) {
this.gamestatus = gamestatus;
}
}
Nun soll ich klasse "PingPong" die Variable "gamestatus" der Klasse "MainDrawing" überprüft werden und bei änderung ausgegeben werden.
LG
Purzel