Hallihallo, irgendwie stoße ich in letzter Zeit immer wieder auf meinen Freund die Ratlosigkeit 
Sachverhalt:
Ich will über einen JButton die Methode loeschen() ausführen. Sie befinden sich beide in der selben Klasse,namens Leinwand( ich poste sie bei Bedarf(sehr lang )). Dies würde ich jedoch gerne von außen über meine "steuerung" handhaben. In meiner Steuerung befindet sich dann auch der zuständige Actionlistener.
jedoch ist meine Frage: wie rufe ich die Methode von ausserhalb der Klasse auf?
meine Idee wäre jetzt folgende:via:
nur irgendwie klappt das nicht. a la "cannot find symbol - method loeschen"
Vielen Dank für die Hilfe!
hier meine Steuerung:
Sachverhalt:
Ich will über einen JButton die Methode loeschen() ausführen. Sie befinden sich beide in der selben Klasse,namens Leinwand( ich poste sie bei Bedarf(sehr lang )). Dies würde ich jedoch gerne von außen über meine "steuerung" handhaben. In meiner Steuerung befindet sich dann auch der zuständige Actionlistener.
jedoch ist meine Frage: wie rufe ich die Methode von ausserhalb der Klasse auf?
meine Idee wäre jetzt folgende:via:
Code:
eventQuelle=evt.getSource();
eventQuelle.loeschen();
Vielen Dank für die Hilfe!
hier meine Steuerung:
Code:
import java.awt.*;
import java.awt.Graphics;
import java.awt.Color;
import java.awt.Image;
import java.awt.PopupMenu;
import java.awt.event.*;
import javax.swing.*;
public class Steuerung implements MouseListener, MouseMotionListener, ActionListener
{
Tuer[] shapesT;
int iT; // Anzahl Einträge im array der vorhandenen Objekte
int aT; // Index des Objekts, das an Mausposition liegt (z.B. zum Löschen)
public static Tuer currentT, lastT; // aktueller und zuletzt benutzter Kreis
String aufgabe;
int lastX, lastY; // Position des letzten Mausklicks
int drehWinkel;
int lastDrehWinkel;
public Steuerung(){
drehWinkel = 0;
lastDrehWinkel = 0;
currentT = null; lastT = null;
aT = -1;
iT = 0; // Objektliste Kreise ist leer
shapesT = new Tuer[100];
// Register this object as a listener to its own events.
}
public void actionPerformed(ActionEvent evt)
{
System.out.println("Action passiert");
Object eventQuelle=evt.getSource();
String klassennameDerEreignisQuelle=eventQuelle.getClass().getName();
if ( (klassennameDerEreignisQuelle.equals("javax.swing.JButton")) &&
(((JButton) eventQuelle).getText().equals("Tuer")))
{
System.out.println("Tuer");
aufgabe = "Tuer";
}
if ( (klassennameDerEreignisQuelle.equals("javax.swing.JButton")) &&
(((JButton) eventQuelle).getText().equals("Links")))
{
aufgabe="DrehLinks";
System.out.println("DREHELINKS");
if (aufgabe =="DrehLinks" )
{
if (lastT != null)
{
System.out.println("links");
drehWinkel= lastDrehWinkel - 45;
lastT.dreheAuf(drehWinkel);
lastDrehWinkel= drehWinkel;
}
}
}
if ( (klassennameDerEreignisQuelle.equals("javax.swing.JButton")) &&
(((JButton) eventQuelle).getText().equals("Rechts")))
{
aufgabe="DrehRechts";
System.out.println("DREHERECHTS");
if (aufgabe =="DrehRechts" )
{
if (lastT != null)
{
System.out.println("Rechts");
drehWinkel= lastDrehWinkel + 45;
lastT.dreheAuf(drehWinkel);
lastDrehWinkel= drehWinkel;
}
}
}
if ( (klassennameDerEreignisQuelle.equals("javax.swing.JButton")) &&
(((JButton) eventQuelle).getText().equals("lösche")))
{
System.out.println("löschn");
aufgabe="loeschen";
}
if ( (klassennameDerEreignisQuelle.equals("javax.swing.JButton")) &&
(((JButton) eventQuelle).getText().equals("lösche alles")))
{
System.out.println("löschn");
aufgabe="loeschen";
}
}
public void mouseReleased(MouseEvent evt)
{
currentT = null;
System.out.println("**Mausknopf losgelassen**");
}
public void mousePressed(MouseEvent evt)
{
int xPosition = evt.getX ();
int yPosition = evt.getY ();
System.out.println("**Mausknopf gedrückt. Koordinaten="+xPosition+"-"+yPosition);
if (aufgabe == "Tuer" )
{
shapesT[iT++]= new Tuer(xPosition,yPosition);
}
if (aufgabe == "loeschen")
{
System.out.println("asdasffasafdsasdf");
lastT.loesche();
}
lastX = xPosition;
lastY = yPosition;
aT = -1; // zu merkenden Index auf erkennbar ungültigen Wert initialisieren
for (int i = iT-1; i>=0; --i)
{
Tuer sT = shapesT[i];
if (sT.isInside (xPosition, yPosition))
{
currentT = sT;
lastT = sT;
aT = i; // auch den Index im Array merken ! zum Löschen.
}
}
// Aufgabe erledigt: also zurücksetzen
aufgabe = "keine";
} // ende mousePressed()
public void mouseDragged(MouseEvent evt)
{
// Compute how far the mouse moved since the last event.
int xPosition = evt.getX ();
int yPosition = evt.getY ();
int deltaX = xPosition - lastX;
int deltaY = yPosition - lastY;
// Save the current mouse position.
lastX = xPosition;
lastY = yPosition;
// If the user is dragging around a shape, move it by
// the same amount that the mouse moved.
if (currentT != null)
{
currentT.move (deltaX, deltaY);
//repaint (); MACHT ER AUTOMATISCH, d.h.
}
}
public void mouseMoved(MouseEvent evt){ }
public void mouseClicked(MouseEvent evt){ }
public void mouseEntered(MouseEvent evt){ }
public void mouseExited(MouseEvent evt){ }
}