Estou estudando o JPopupMenu, e desenvolvi o código abaixo, eh assim a forma correta de se construir um JPopupMenu? porém na parte do actionPerformed ele não chama as funçoes (por exemplo ele não escreve na tela “itemArquivo”):
if ( evento.getSource() == itemArquivo) {
//executa uma função
PopupTeste p1 = new PopupTeste();
JOptionPane.showMessageDialog(p1,"Itemarquivo","Arquivo ",
JOptionPane.INFORMATION_MESSAGE);
System.out.println("itemArquivo");
o que eu estou fazendo de errado??? qual a correçaõ?
segue abaixo o código completo, pois acho q isso deve ajudar muita gente tbm q quer trabalhar com JPopupMenu
import java.io.*;
import java.util.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class PopupTeste extends JFrame {
private JPopupMenu pop;
JMenu menu = new JMenu("File");
JMenuItem itemArquivo = new JMenuItem("Arquivo");
JMenuItem itemSair = new JMenuItem("Sair");
JMenuItem Sobre = new JMenuItem("Sobre Menu");
public PopupTeste () {
super("Popup Menu");
Pegador peg = new Pegador();
ButtonGroup carros = new ButtonGroup();
pop = new JPopupMenu();
pop.add(menu);
pop.add(Sobre);
pop.add("ajuda");
menu.add(itemArquivo);
menu.add(itemSair);
addMouseListener(
new MouseAdapter() {
public void mousePressed(MouseEvent evento) {
checkForTriggerEvent(evento);
}//Fim de mousePressed
public void mouseReleased(MouseEvent evento) {
checkForTriggerEvent(evento);
}//Fim de mouseReleased
private void checkForTriggerEvent(MouseEvent evento) {
if ( evento.isPopupTrigger() )
pop.show( evento.getComponent(), evento.getX(), evento.getY() );
}//Fim de checkForTriggerEvent
}//Fim de MouseAdapter
);
setSize(300, 200);
show();
}//Fim do construtor
public static void main (String args[]) {
PopupTeste aplic = new PopupTeste();
aplic.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}//Fim de main
private class Pegador implements ActionListener {
public void actionPerformed(ActionEvent evento) {
if ( evento.getSource() == itemArquivo) {
//executa uma função
PopupTeste p1 = new PopupTeste();
JOptionPane.showMessageDialog(p1,"Itemarquivo","Arquivo ",
JOptionPane.INFORMATION_MESSAGE);
System.out.println("itemArquivo");
}
if ( evento.getSource() == itemSair) {
//executa uma função
}
if ( evento.getSource() == Sobre) {
//executa uma função
}
if ( evento.getSource() == "ajuda") {
//executa uma função
}
}//Fim de actionPerformed
}//Fim da classe interna
}//Fim da classe
Agradeço a ajuda de vcs