T
TchuTchu
Gast
Hallo Zusammen,
ich habe gerade erst Angefangen Java zu Programmieren. Aber das Konzept der Objekt Orientierung ist mir neu. Deshalbt nun meine Frage.
Ich habe Klasse A es zeichnet ein Viereck gefüllt mit ner Farbe dann habe ich noch Klasse B sie zeichnet eine andere figur mit Koordinaten die aus dem Hauptprogramm (mit main Mehtode) Übergeben werden auf das selbe Canvas Objekt.
So Irgendwie sehe ich immer nur das letzte Objekt das ich mit paint auf Canvas gezeichnet habe. Wird die Methode da neu überschrieben sodas immer nur das letzt Objekt enthahlten ist? Sind ja aber in Unterschiedlichen Klassen. Wenn ja gibt es repaint aber wie?
Bin ich da vom Ansatz her schon auf dem Holzweg? Naja Ohne Code geht eh nicht also hier. Jede Klasse ist auch in unterschiedlichen Dateien. Ach ja die Werte kommen in der anderen Klasse an (über printl. ausgegebn) das gezeichnete Objekt (wenn das darüberliegende auskommentiert wurde) zeigt darauf aber keine Reaktion.
???:L
ich habe gerade erst Angefangen Java zu Programmieren. Aber das Konzept der Objekt Orientierung ist mir neu. Deshalbt nun meine Frage.
Ich habe Klasse A es zeichnet ein Viereck gefüllt mit ner Farbe dann habe ich noch Klasse B sie zeichnet eine andere figur mit Koordinaten die aus dem Hauptprogramm (mit main Mehtode) Übergeben werden auf das selbe Canvas Objekt.
So Irgendwie sehe ich immer nur das letzte Objekt das ich mit paint auf Canvas gezeichnet habe. Wird die Methode da neu überschrieben sodas immer nur das letzt Objekt enthahlten ist? Sind ja aber in Unterschiedlichen Klassen. Wenn ja gibt es repaint aber wie?
Bin ich da vom Ansatz her schon auf dem Holzweg? Naja Ohne Code geht eh nicht also hier. Jede Klasse ist auch in unterschiedlichen Dateien. Ach ja die Werte kommen in der anderen Klasse an (über printl. ausgegebn) das gezeichnete Objekt (wenn das darüberliegende auskommentiert wurde) zeigt darauf aber keine Reaktion.
Code:
import java.awt.*;
import java.awt.event.*;
public class Spielfeld extends Frame
implements WindowListener,ActionListener,MouseListener {
Spielfeld (String Titel){
super (Titel);
setSize (800, 600);
setVisible(true);
setBackground(Color.white);
addWindowListener(this);
addMouseListener(this);
//Initialisiert Menthode Menü
InitializeMenus();
}
//Variablen des Menüs
MenuItem mBeenden,mStart;
//Methode: actionPerformed (Menü Events werden Registriert)
public void actionPerformed (ActionEvent event) {
if (event.getSource() == mStart) {
//Aufruf der ZeichneSpielfeld Klasse
ZeichneSpielfeld z = new ZeichneSpielfeld();
add ("Center", z);
//Aufruf der ErstelleBau Methode aus der Klasse Bau ?????
[b]Bau b = new Bau("Test",500,500,50);
add (b);[/b]
setVisible(true);
//Aufruf der Nahungsklasse um zu beginn Zucker anzubieten
//new Nahrung (Zucker);
}else if (event.getSource() == mBeenden){
System.exit(0);
}
}
//Methode: Menü
public void InitializeMenus() {
//Einfügen der Menü-Leiste
MenuBar mMenuBar = new MenuBar ();
Menu mMenu = new Menu ("Datei");
mMenuBar.add (mMenu);
setMenuBar (mMenuBar);
//Einfügen der Menü-Punkte
mMenu.add (mStart = new MenuItem ("Start"));
mMenu.add (mBeenden = new MenuItem ("Beenden"));
//Einfügen Event Listener je Menüeintrag
mBeenden.addActionListener (this);
mStart.addActionListener (this);
}
//Methoden für Fenster Aktionen
public void windowClosed(WindowEvent event) {}
public void windowDeiconified(WindowEvent event) {}
public void windowIconified(WindowEvent event) {}
public void windowActivated(WindowEvent event) {}
public void windowDeactivated(WindowEvent event) {}
public void windowOpened(WindowEvent event) {}
public void windowClosing(WindowEvent event) {System.exit(0);}
//Methoden für Maus Aktionen
public void mousePressed (MouseEvent event){System.out.println("Maustaste gedrückt");}
public void mouseReleased (MouseEvent event){System.out.println("Maustaste Losgelassen");}
public void mouseExited (MouseEvent event){System.out.println(event);}
public void mouseEntered (MouseEvent event){System.out.println(event);}
public void mouseClicked(MouseEvent event)
{ System.out.println(event);
System.out.println(
"Mausklick bei "+event.getX()+","+event.getY());
}
//Erzeugen des Spielfeldes
public static void main (String [] args) {
new Spielfeld ("Emergenz");
}
}
import java.awt.*;
import java.awt.event.*;
//Klasse: Zeichne Spielfeldinhalt (Irgend wann mal)
public class ZeichneSpielfeld extends Canvas implements MouseListener {
public void paint(Graphics g){
int x = getSize().width/2;
int y = getSize().height/4;
g.setColor(Color.gray);
g.fillRect(0,y,2*x,4*y);
g.setColor(Color.black);
g.drawLine(0,y,2*x,y);
addMouseListener(this);
}
//Hier die Methode zum Zeichnen der Objekte (Ameisen usw)??
//Methoden für Maus Aktionen
public void mousePressed (MouseEvent event){System.out.println(event);}
public void mouseReleased (MouseEvent event){System.out.println(event);}
public void mouseExited (MouseEvent event){System.out.println(event);}
public void mouseEntered (MouseEvent event){System.out.println(event);}
public void mouseClicked(MouseEvent event)
{ System.out.println(event);
System.out.println(
"Mausklick bei "+event.getX()+","+event.getY());
}
}
import java.awt.*;
public class Bau extends Canvas {
String name; //Baum Name
int bauPositionX; //Position des Baus im Moment fest später zufällig
int bauPositionY; //bei Spielbeginn
int fassungsvermoegen; //Fassungsvermögen des Baus
//Konstruktor für Bau (Name, Bau Position, Fassungsvermögen)
Bau(String name, int bauPositionX, int bauPositionY, int fassungsvermoegen){
System.out.println(name + bauPositionX + bauPositionY + fassungsvermoegen);
}
public void paint(Graphics g){
//int x = bauPositionX;
//int y = bauPositionY;
int x = 250;
int y = 250;
//Bau wird gezeichnet
g.drawLine(x-10,y+15,x+10,y+15);
g.drawLine(x-15,y+25,x+15,y+25);
g.drawLine(x-10,y+15,x-15,y+25);
g.drawLine(x+10,y+15,x+15,y+25);
}
}