# NoSuchMethodFoundError nach Implement von PopupMenuListener



## furkal (11. Dez 2003)

HI zusammen!   

Ich habe ein Applet implementiert, in dem unteranderem ComboBoxen (javax.swing) vorkommen.
Jetzt möchte ich mit einem PopupMenuListener die Aktionen einer Combobox einfach erstmal ausgeben, um zu sehen, ob alles funktioniert.


```
import java.awt.*;
import java.applet.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.JSpinner;
import javax.swing.border.*;
import javax.swing.event.*;

public class Test2 extends Applet{

     public Test2() {
*)       try {  jbInit();   }
         catch(Exception e) { e.printStackTrace();  }
     }

     private void jbInit() throws Exception{

         JComboBox CB = new JComboBox();
         CB.addItem("eins");           CB.addItem("zwei"); 

           
**)     CB.addPopupMenuListener(new PopupMenuListener(){
  	 
                 public void popupMenuWillBecomeVisible(PopupMenuEvent e){
     	          System.out.println("Popup\n");	 
                 }

	 public void popupMenuWillBecomeInvisible(PopupMenuEvent e){
	 }

	 public void popupMenuCanceled(PopupMenuEvent e){
	 }
          });

           
     }
}
```


Wenn ich nun den Browser öffne, um das Programm zu starten, gibt es eine Fehlermeldung :


```
java.lang.NoSuchMethodError
	at Test2.jbInit(Test2.java:268)     //Hier Zeile bei **)
	at Test2.<init>(Test2.java:81)     //Hier Zeile bei *)
	at java.lang.Class.newInstance0(Native Method)
	at java.lang.Class.newInstance(Unknown Source)
	at sun.applet.AppletPanel.createApplet(Unknown Source)
	at sun.plugin.AppletViewer.createApplet(Unknown Source)
	at sun.applet.AppletPanel.runLoader(Unknown Source)
	at sun.applet.AppletPanel.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
```

Weiß jemand was ich hier falsch gemacht habe? OHne den Popupmenulistener - und es sind noch weitere KOmponenten und Actionlistener für Buttons usw. vorhanden - funktioniert es prächtig....!


Vielen Dank im voraus

Gruß  Daniel  no :idea:


----------



## mariopetr (11. Dez 2003)

du musst alle der 3 methoden 

 void
popupMenuCanceled(PopupMenuEvent e) 
           This method is called when the popup menu is canceled
 void
popupMenuWillBecomeInvisible(PopupMenuEvent e) 
           This method is called before the popup menu becomes invisible Note that a JPopupMenu can become invisible any time
 void
popupMenuWillBecomeVisible(PopupMenuEvent e) 
           This method is called before the popup menu becomes visible

implementieren, nicht nur eine


----------



## furkal (11. Dez 2003)

Habe die übrigen beiden auch je eine Anweisung zur Testausgabe implementiert, hilft leider auch nichts! :cry:


----------



## mariopetr (11. Dez 2003)

sorry, habe ich uebersehen

bei mir geht das (dein code, neu formatiert unklammern umgesetzt)


```
import java.applet.Applet;

import javax.swing.JComboBox;
import javax.swing.event.PopupMenuEvent;
import javax.swing.event.PopupMenuListener;

public class Test2 extends Applet
{

	public Test2()
	{
		try
		{
			jbInit();
		}
		catch (Exception e)
		{
			e.printStackTrace();
		}
	}

	private void jbInit() throws Exception
	{

		JComboBox CB= new JComboBox();
		CB.addItem("eins");
		CB.addItem("zwei");

		CB.addPopupMenuListener(new PopupMenuListener()
		{

			public void popupMenuWillBecomeVisible(PopupMenuEvent e)
			{
				System.out.println("Popup\n");
			}

			public void popupMenuWillBecomeInvisible(PopupMenuEvent e)
			{
			}

			public void popupMenuCanceled(PopupMenuEvent e)
			{
			}
		});
		this.add(CB);
	}
}
```


----------



## Guest (12. Dez 2003)

Hab deinen Code übernommen, funktioniert trotzdem nicht-> nosuchmethoderror !
*verzweifel*


----------

