Menu com o botão direito em uma JTable

0 respostas
F

Bom dia,

Procurei MUITO aqui no forum sobre o assunto, achei alguns posts mas nenhum exatamente com o mesmo problema que o meu.
Estou fazendo uma aplicação swing e nela tenho uma JTable. Estou querendo utilizar um pequeno menu com o botão direito no mouse, porém so queria q esse menu SOMENtE fosse exibido quando um elemento da JTabla estiver selecionado e quando clicado dentro da area da JTable.

Inicialmente vi no DevMedia se nao me engano, essa solução sendo implementada com JPopUpMenu utilizando 2 classes.

Uma classe abstrata…

package br.com.Util;

import java.awt.Dimension;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;

import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JPopupMenu;

public abstract class AbstractJPopupPanel extends JPanel implements
		MouseListener {

	private JPopupMenu jPopupMenu;

	public AbstractJPopupPanel() {

		jPopupMenu = new JPopupMenu();
		String[] menuItems = getMenuItems();

		for (int i = 0; i < menuItems.length; i++) {
			JMenuItem menuItem = new JMenuItem(menuItems[i]);
			jPopupMenu.add(menuItem);
		}

		super.addMouseListener(this);
		super.setPreferredSize(new Dimension(100, 300));
	}

	public void mouseClicked(MouseEvent event) {
		System.out.println("EU LANCEI UM EVENTO LOUCO!");
		if (event.getButton() == MouseEvent.BUTTON3) {
			jPopupMenu.show(this, event.getX(), event.getY());
		}
	}

	public void mouseEntered(MouseEvent e) {
	}

	public void mouseExited(MouseEvent e) {
	}

	public void mouseReleased(MouseEvent e) {
	}

	public void mousePressed(MouseEvent event) {
	}

	public abstract String[] getMenuItems();

}

e a “filha”…

package br.com.Util;

public class JPopUpOpcoes extends AbstractJPopupPanel {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	public String[] getMenuItems() {
		return new String[] { "Ver", "Alterar", "Excluir" };
	}
}

Utilizando essas classes criei uma classe teste q extend de JFrame adicionei e funcionou certinho… Porem no meu projeto msm, cada tela é um JPanel que vou jogando no frame conforme solicitado… e insiro da msm forma como fiz no JFrame e n funciona de forma alguma…
tentei adicionar na tabela com o:

JPopUpOpcoes pop = new JPopUpOpcoes();
tabela.add(popUp);

tentei instanciar em um mouse listener e tbm nada…

Alguem tem ideia de como eu posso fazer meu Pop Up dessa forma ou quem sabe de uma forma melhor??
Agradeço desde já

Criado 6 de agosto de 2008
Respostas 0
Participantes 1