Hallo,
entweder ich steh grad völlig aufm Schlauf oder kA ...
Ich möchte in der mousePressed() PopupMenu: show(Component invoker, int x, int y) aufrufen.
Übergabeparameter invoker soll das aktuelle JFrame sein.
da das ganze aber in der mousePressed() passiert, kann ich nicht this reinschreiben, weil das ja der Mouseadapter wär. Also hab ich mir ne Referenz auf den JFrame erstellt -> "frame"
Jetzt die wohl simple Frage, geht das nicht irgendwie anders? Ich bin grad etwas überfragt, sieht für mich merkwürdig aus.
Die 3 betreffenden Zeilen habe ich mit "<-------------------------" markiert
mfg Verjigorm
entweder ich steh grad völlig aufm Schlauf oder kA ...
Ich möchte in der mousePressed() PopupMenu: show(Component invoker, int x, int y) aufrufen.
Übergabeparameter invoker soll das aktuelle JFrame sein.
da das ganze aber in der mousePressed() passiert, kann ich nicht this reinschreiben, weil das ja der Mouseadapter wär. Also hab ich mir ne Referenz auf den JFrame erstellt -> "frame"
Jetzt die wohl simple Frage, geht das nicht irgendwie anders? Ich bin grad etwas überfragt, sieht für mich merkwürdig aus.
Die 3 betreffenden Zeilen habe ich mit "<-------------------------" markiert
mfg Verjigorm
Code:
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JPopupMenu;
/**
* @author Verjigorm
*
*/
@SuppressWarnings("serial")
public class PopUpTest extends JFrame
{
private JPanel panel = new JPanel();
private JPopupMenu popup;
private JFrame frame; //<-----------------------------
public PopUpTest()
{
setTitle("PopUpTest");
setSize(300, 300);
setLocation(200, 200);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame = this;//<-----------------------------
panel.addMouseListener(new MouseAdapter()
{
@Override
public void mousePressed(MouseEvent e)
{
if(e.getButton() == MouseEvent.BUTTON3)
{
popup = new MyPopUpMenu();
popup.show(frame, e.getX()-10, e.getY()+20); //<---------------------------
}
}
});
add(panel);
setVisible(true);
}
/**
* @param args
*/
public static void main(String[] args)
{
new PopUpTest();
}
}