Funktion einer anderen Klasse aus einem Dialog aufrufen

Status
Nicht offen für weitere Antworten.

Pasche

Bekanntes Mitglied
Ich sitze immer noch an meinem Malprogramm (jaja, ich kann es auch nicht mehr sehen :roll: ), und habe unter "bearbeiten" einen Punkt löschen, der die komplette zeichenfläche löscht. Dazu der Aufruf in der MainMenu:

Code:
...
...
		else if (e.getActionCommand() == "delete")
		{
			owner.getPaintPanel().clear();
		}
...
...

Die clear() in der PaintPanel sieht so aus:

Code:
   public void clear(){
      paints.clear();
      repaint();
   }

Das funktioniert auch so einwandfrei. Nun möchte ich aber einen Dialog aufrufen, wenn man auf "Datei -> Neu" in meinem Hauptmenu geht. Da wird dann gefragt "Datei speichern ? Ja, Nein, Abbrechen". Auf abbrechen soll genau diese clear-Funktion aufgerufen werden.

Code:
   public void actionPerformed(ActionEvent event)
   {
      if (event.getActionCommand().equals("Ja")) {
        
      }
      
      else if (event.getActionCommand().equals("Nein")) {
        endDialog();
        PaintPanel.paints.clear(); 
      }
      
      else if (event.getActionCommand().equals("Abbrechen")) {
        endDialog();
      }
   }

Was mache ich bei dem Aufruf falsch ?
 
B

Beni

Gast
Ich geh mal davon aus, dass die "actionPerformed"-Methode aufgerufen wird?

Dann frag ich mich ob:
Code:
      else if (event.getActionCommand().equals("Nein")) {
        endDialog();
//        PaintPanel.paints.clear();
        PaintPanel.clear();  // ... du nicht das hier schreiben wolltest?
      }


P.S. die Klasse "JOptionPane" schon mal angeguckt? Da sind einige forgeretigte Dialog drin, die ziemlich gut aussehen :wink:
 

Pasche

Bekanntes Mitglied
wenn ich das so aufrufe, bekomme ich die fehlermeldung:

Code:
D:\FHDW Arbeiten\PaLiMa\31082004\SaveWnd.java:72: non-static method clear() cannot be referenced from a static context

        PaintPanel.clear(); 

                  ^
 
B

Beni

Gast
Da musst du dem Dialog eine Referenz auf das PaintPanel übergeben (ist sowieso schöner als "static").

(Ich würde solch ein Aufbau für den Dialog empfehlen:)
Code:
public class DerDialog extends JDialog{
  private PaintPanel panel;
  public DerDialog( PaintPanel panel, JFrame owner ){
    super( owner );
    this.panel = panel;
  }

  public void actionPerformed( ActionEvent e ){
    if( ... )
      panel.clear();
  }
}
 

Pasche

Bekanntes Mitglied
soweit hab ich das noch verstanden. jetzt rufe ich ja in der MainMenu den Dialog auf. Wie übergebe ich denn da jetzt das Panel ?

Bis jetzt habe ich da ja nur:

Code:
SaveWnd dlg = new SaveWnd(owner);
			dlg.setVisible(true);
 
B

Beni

Gast
Nun, im MainMenu brauchst du eine Referenz auf das PaintPanel, und dann kannst du das machen:
Code:
SaveWnd dlg = new SaveWnd( panel, owner );

Und falls du zurzeit noch keine Referenz auf das PaintPanel im Menu hast, das kann man genau gleich wie beim Dialog implementieren... schlussendlich wird das PaintPanel von einem Ende des Progis ans andere durchgereicht.
 

Pasche

Bekanntes Mitglied
Das funktioniert leider noch nicht. Ich zeig dir mal die wichtigsten Sachen die ich habe:

In der PeintPanel:
Code:
   public void clear(){
      paints.clear();
      repaint();
   }

In der MainMeni:
Code:
public class MainMenu extends MenuBar implements ActionListener
{
	private MainFrame owner;
	private PaintPanel panel; 

	public MainMenu(MainFrame owner)
	{
		Menu menue;
		MenuItem beenden, info, loeschen, neu;
		this.owner = owner;
		this.panel = panel;

		//Datei
		menue = new Menu("Datei");
		neu = new MenuItem("Neu");	
		neu.addActionListener(this);
		neu.setActionCommand("new");
		menue.add(neu);	
        }

	public void actionPerformed(ActionEvent e) {

		if (e.getActionCommand() == "new")
		{
			SaveWnd dlg = new SaveWnd(panel, owner);
			dlg.setVisible(true);
		}
       }
}


In der SaveWnd:
Code:
class SaveWnd extends Dialog implements ActionListener
{    
   private PaintPanel mainpanel;
   
   public SaveWnd( PaintPanel mainpanel, Frame owner)
   {
      super(owner, "Datei Neu", true);
      this.mainpanel = mainpanel;
    }


   public void actionPerformed(ActionEvent event)
   {
         if (event.getActionCommand().equals("Nein")) {
        endDialog();
        mainpanel.clear(); 
        }
    }
}

Der Aufruf in der SaveWnd funktioniert leider nicht. "NullPointerException" :roll:
 
B

Beni

Gast
Code:
   public MainMenu(MainFrame owner)
   {
      Menu menue;
      MenuItem beenden, info, loeschen, neu;
      this.owner = owner;

//********************************************
      this.panel = panel;   // man könnte auch "panel = panel" schreiben...

      // versuch mal sowas
      panel = owner.getPaintPanel();  // Wobei du "getPaintPanel" natürlich zuerst noch implentieren musst.
//********************************************
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
G Funktion einer anderen Datei aufrufen Java Basics - Anfänger-Themen 4
P Funktion einer anderen Klasse aufrufen Java Basics - Anfänger-Themen 5
FunkyPhil94 Wert in einer Lambda Funktion erhöhen Java Basics - Anfänger-Themen 3
_user_q Wie eine Methode/Funktion aus einer Klasse mit Constructor aufrufen? Java Basics - Anfänger-Themen 20
nelsonmandela Problem bei Ausgabe einer Switch - Case Funktion Java Basics - Anfänger-Themen 5
H Den Wert einer rekursiven Funktion bestimmen Java Basics - Anfänger-Themen 5
D Nullstellen einer Funktion 3. Grades mit Horner Schema Java Basics - Anfänger-Themen 6
B Zugriffe in einer Klasse / Funktion Java Basics - Anfänger-Themen 9
J Array innerhalb einer Funktion mehrfach iniatilisieren Java Basics - Anfänger-Themen 4
J Wie lässt sich der Konstruktor einer Klasse einer Funktion einer Klasse nutzen. Java Basics - Anfänger-Themen 4
S Wertetabelle einer Funktion f : R -> R Java Basics - Anfänger-Themen 1
C Automatisches Ausfuehren einer Funktion beim Laden eines Jar files Java Basics - Anfänger-Themen 3
P int Array direkt einer Funktion übergeben Java Basics - Anfänger-Themen 3
S Extremwerte einer Funktion Java Basics - Anfänger-Themen 11
I Befehl wird erst nach dem Ausführen einer Funktion ausgeführt Java Basics - Anfänger-Themen 4
S Frage zu einer rekursiven Funktion Java Basics - Anfänger-Themen 28
C Aufruf einer Funktion Java Basics - Anfänger-Themen 3
B Problem mit double in einer Funktion Java Basics - Anfänger-Themen 4
sqsh mehrere JLabels mit einer Funktion verwalten Java Basics - Anfänger-Themen 5
P Problem mit: Vererbung , ADT und einer Funktion Java Basics - Anfänger-Themen 10
Y Implementierung einer Potenzturm Funktion Java Basics - Anfänger-Themen 4
K Hilfe bei einer Shrink Funktion Java Basics - Anfänger-Themen 8
G JProgressBar während dem ausführen einer Funktion Java Basics - Anfänger-Themen 3
G Rekursiver Aufruf einer JSP über eine JavaScript-Funktion Java Basics - Anfänger-Themen 5
M Per Button einer Funktion true oder false übermitteln? Java Basics - Anfänger-Themen 4
philipp Wie kann ich eine Funktion einer Klasse benutzen ? Java Basics - Anfänger-Themen 2
T charAt funktion mit einer string zeichenkette nutzen. WIE? Java Basics - Anfänger-Themen 13
G problem beim überschreiben einer funktion Java Basics - Anfänger-Themen 2
G Problem mit einer ganz einfachen Funktion Java Basics - Anfänger-Themen 8
Niki_Tesla funktion zum überprüfen einer zahl Java Basics - Anfänger-Themen 5
B Was mach ich falsch mit dem Aufruf einer Funktion? Java Basics - Anfänger-Themen 12
E Hilfe bei rekursiver Funktion Java Basics - Anfänger-Themen 3
M Eine Funktion zuweisen Java Basics - Anfänger-Themen 3
V Die Funktion des neuen Schlüsselworts in Java Java Basics - Anfänger-Themen 1
M variable in anderer funktion aufrufen Java Basics - Anfänger-Themen 10
W GUI - JButton ohne Funktion? Java Basics - Anfänger-Themen 24
J Rekursive Funktion und return statement Java Basics - Anfänger-Themen 3
F Wie kann ich eine Funktion schreiben, die nur in bestimmten Fällen einen Wert zurückgibt? Java Basics - Anfänger-Themen 5
R Buttons ohne Funktion Java Basics - Anfänger-Themen 2
I Generische Funktion Java Basics - Anfänger-Themen 3
E Pervasive PSQL insert funktion geht nicht Java Basics - Anfänger-Themen 9
C Java Funktion: externe Daten vom Internet einbinden Java Basics - Anfänger-Themen 2
T Log Funktion erstellen Java Basics - Anfänger-Themen 1
M Wie kann ich eine Methode aus einem Interface in eine Klasse implementieren, so dass sie ihre Funktion ausführt? Java Basics - Anfänger-Themen 7
J In main() Datei geöffnet, von anderer Funktion beschreiben Java Basics - Anfänger-Themen 3
M toDouble Funktion Java Basics - Anfänger-Themen 3
Tino1993 Ellipse über draw Funktion ohne spur wandern lassen Java Basics - Anfänger-Themen 6
X Ackermannsche Funktion Java Basics - Anfänger-Themen 32
F Arrays: Mathematische Funktion Java Basics - Anfänger-Themen 19
P Dezimal zu Hexadezimalzahl Funktion Java Basics - Anfänger-Themen 5
S Verwenden von throw Exception an der Funktion Java Basics - Anfänger-Themen 2
M Arrays in Funktion Kopieren und Bearbeiten Java Basics - Anfänger-Themen 4
B Funktion mit mehreren Rückgabewerten aka Prozeduren? Java Basics - Anfänger-Themen 12
J Dynamisches Array durch split()-Funktion? Java Basics - Anfänger-Themen 3
D Funktion nur 1 Rueckgabewert Java Basics - Anfänger-Themen 9
M Wie lang eine Funktion/Methode? Java Basics - Anfänger-Themen 51
N den inhalt eines array per funktion ausgeben Java Basics - Anfänger-Themen 8
R Ackermann Funktion Java Basics - Anfänger-Themen 2
B Treetable (rekursive Funktion) aufbauen von Datenbank Java Basics - Anfänger-Themen 4
D Funktion zwei Arraylisten zu verleichen ob gleich funktioniert nicht Java Basics - Anfänger-Themen 26
N Abfragen eines Textes aus einem JTextField in Java, Funktion, CardLayout, Java Basics - Anfänger-Themen 2
T Rekursion Warum bricht meine Funktion nicht ab Java Basics - Anfänger-Themen 4
N Funktion funktioniert nicht immer Java Basics - Anfänger-Themen 6
E Contain-funktion überlisten Java Basics - Anfänger-Themen 4
J Division ohne Arithmetische Funktion Java Basics - Anfänger-Themen 2
S Funktion in Klasse auslagern Java Basics - Anfänger-Themen 4
J Problem mit Boolean bei Funktion! Java Basics - Anfänger-Themen 5
S Gibt es eine Funktion, die gewissermaßen eine Reihe von instanceOf() vereinheitlicht? Java Basics - Anfänger-Themen 19
Aprendiendo Gibt es in der JAVA-API eine Funktion, die eine Dezimalzahl in eine binäre Zahl umwandelt? Java Basics - Anfänger-Themen 8
D Funktion gibt Dimension zurück Java Basics - Anfänger-Themen 11
A Rekursion Funktion in eine Iterativ Funktion umwandeln Java Basics - Anfänger-Themen 9
T static String Variable wird nur beim ersten aufruf durch eine Funktion geändert. Java Basics - Anfänger-Themen 16
T Koordinatensystem zeichnen - Variablen merken? Quadratische Funktion zeichnen? Java Basics - Anfänger-Themen 5
T Lambda-Funktion bei Binärbäumen Java Basics - Anfänger-Themen 13
M Thread.sleep() Funktion Java Basics - Anfänger-Themen 1
B OOP Wie benutze ich die Main Funktion richtig? Java Basics - Anfänger-Themen 10
H Nicht Static Funktion ohne Objekt aufrufen? Java Basics - Anfänger-Themen 6
K Methoden mit den Namen accept. Welche Funktion haben diese? Java Basics - Anfänger-Themen 2
E Compare-Funktion bei eigener Klasse Java Basics - Anfänger-Themen 4
S Threads run - Funktion wird nur einmal ausgeführt. Java Basics - Anfänger-Themen 8
B Anwender soll mathematische Funktion eingeben können, Einfachster Fnktionsplotter Java Basics - Anfänger-Themen 4
R If Funktion funktioniert nicht :P Java Basics - Anfänger-Themen 3
H Funktion in Hintergrund und Vordergrund ausführen Java Basics - Anfänger-Themen 11
S Funktion die mir fuer einen String eine Zahl zwischen 0.0 und 1.0 zurueckliefert..? Java Basics - Anfänger-Themen 9
S Funktion eines Stacks Java Basics - Anfänger-Themen 4
T Integer-Objekt über Hash-Funktion in Array ablegen Java Basics - Anfänger-Themen 1
S Separate Funktion für JUnit-Test Java Basics - Anfänger-Themen 3
D Keine Funktion bei "else" Java Basics - Anfänger-Themen 5
S timer funktion mit javax panel Java Basics - Anfänger-Themen 3
T Klassen Funktion in einem Funktionsaufruf definieren Java Basics - Anfänger-Themen 3
F Funktion eines JButton in einen Vektor verlagern Java Basics - Anfänger-Themen 4
X Eval-Funktion mit Variable Java Basics - Anfänger-Themen 2
T Screenreader Funktion Java Basics - Anfänger-Themen 2
P Methoden suche funktion die char wert ausgibt wenn man numerischen wert und radix angibt Java Basics - Anfänger-Themen 1
1 repaint() Funktion erzeugt Flackern Java Basics - Anfänger-Themen 33
J Taschenrechner Funktion Java Basics - Anfänger-Themen 18
R if funktion ohne else - Bedingung trifft nicht zu, ausgabe nicht nachvollziehbar Java Basics - Anfänger-Themen 7
shiroX OOP Java Funktion implementieren Java Basics - Anfänger-Themen 3
O Debug-Funktion mit Slick - Kleines Problem Java Basics - Anfänger-Themen 5
F Funktion immer zur vollen Stunde? Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben