ai vai meu fonte …
a classe mousetracker chama a classe mostrapopup …
mousetracker.java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.text.*;
import java.text.*;
public class MouseTracker extends JFrame implements MouseListener, MouseMotionListener {
private static final long serialVersionUID = 1L;
private JLabel statusBar;
//private JTextField caixa_texto_1 , caixa_texto_2;
private JTextField textFieldSelected = null;
int esse = 0;
String campo = null;
//private FocusListener textFieldFocusListener = new FocusListener() {
//public void focusGained(FocusEvent e) {
// textFieldSelected = (JTextField) e.getSource();
//}
//public void focusLost(FocusEvent e) {
//}
// };
public MouseTracker () {
super("Eventos do Mouse");
statusBar = new JLabel();
statusBar.setText("teste");
getContentPane().add ( statusBar, BorderLayout.SOUTH );
JTextField caixa_texto_1 = new JTextField();
caixa_texto_1.setName("caixa_texto_1");
getContentPane().add ( caixa_texto_1, BorderLayout.NORTH );
caixa_texto_1.addMouseListener(this);
JTextField caixa_texto_2 = new JTextField();
caixa_texto_2.setName("caixa_texto_2");
getContentPane().add ( caixa_texto_2, BorderLayout.CENTER );
caixa_texto_2.addMouseListener(this);
//textFieldSelected = caixa_texto_1;
//caixa_texto_1.addMouseListener(textFieldFocusListener);
//caixa_texto_2.addMouseListener(textFieldFocusListener);
addMouseMotionListener(this);
setSize(200,200);
setVisible(true);
}
public void mouseClicked(MouseEvent event) {
//JOptionPane.showMessageDialog(null, "campo" );
}
public void mousePressed(MouseEvent event) {
textFieldSelected = (JTextField) event.getSource();
int esse = 0;
esse = event.getButton();
campo = textFieldSelected.getName() ;
//JOptionPane.showMessageDialog(null, campo );
if ( esse == 3 ) new MostraPopup( campo , event.getX(), event.getY() );
else esse = 0;
}
public void mouseReleased(MouseEvent event) {
// caixa_texto.setText("Mouse liberado em [" + event.getX() + " , " + event.getY() + "]" );
}
public void mouseExited(MouseEvent event) {
//caixa_texto.setText("Mouse saiu da tela");
}
public void mouseDragged(MouseEvent event) {
//caixa_texto.setText("Arrastado em [" + event.getX() + " , " + event.getY() + "]" );
}
public void mouseMoved(MouseEvent event) {
//caixa_texto.setText("Mouse movimentado em [" + event.getX() + " , " + event.getY() + "]" );
}
public void mouseEntered(MouseEvent e) {
}
public static void main(String args[]) {
MouseTracker application = new MouseTracker();
application.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
mostrapopup.java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class MostraPopup extends MouseAdapter implements ActionListener{
JPopupMenu mpopup;
JMenuItem miSelecionar, miRecortar, miCopiar, miColar;
String campo = null;
public MostraPopup ( String tests, int aki2 , int aki3 ) {
//JOptionPane.showMessageDialog(null, tests ,"esses", JOptionPane.ERROR_MESSAGE);
campo = tests;
//JOptionPane.showMessageDialog(null, campo ,"esses", JOptionPane.ERROR_MESSAGE);
mpopup = new JPopupMenu();
miSelecionar = new JMenuItem ("Selecionar",new ImageIcon("selecionar.gif"));
miSelecionar.setMnemonic(KeyEvent.VK_S);
miSelecionar.addActionListener(this);
miRecortar = new JMenuItem ("Recortar",new ImageIcon("recortar.gif"));
miRecortar.setMnemonic(KeyEvent.VK_T);
miRecortar.addActionListener(this);
miCopiar = new JMenuItem ("Copiar",new ImageIcon("copiar.gif"));
miCopiar.setMnemonic(KeyEvent.VK_C);
miCopiar.addActionListener(this);
miColar = new JMenuItem ("Colar",new ImageIcon("colar.gif"));
miColar.setMnemonic(KeyEvent.VK_P);
miColar.addActionListener(this);
mpopup.add(miSelecionar);
mpopup.add(miRecortar);
mpopup.add(miCopiar);
mpopup.add(miColar);
mpopup.setLocation(aki2,aki3);
mpopup.setVisible(true);
}
public void actionPerformed(ActionEvent e){
//JOptionPane.showMessageDialog(null, campo ,"esses", JOptionPane.ERROR_MESSAGE);
if (e.getSource()==miSelecionar) {
JOptionPane.showMessageDialog(null, "seleciona" ,"Operador", JOptionPane.ERROR_MESSAGE);
//.selectAll();
mpopup.setVisible(false);
}
if (e.getSource()==miRecortar) {
JOptionPane.showMessageDialog(null, "recorta" ,"Operador",JOptionPane.ERROR_MESSAGE);
//.cut();
mpopup.setVisible(false);
}
if (e.getSource()==miCopiar) {
JOptionPane.showMessageDialog(null, "copia" ,"Operador",JOptionPane.ERROR_MESSAGE);
//.copy();
mpopup.setVisible(false);
}
if (e.getSource()==miColar) {
JOptionPane.showMessageDialog(null, "cola" ,"Operador",JOptionPane.ERROR_MESSAGE);
//.paste();
mpopup.setVisible(false);
}
}
}
por isso que eu coloquei o nome do campo numa variavel string, nao sei quantos textfield vou ter num formulario, mas num cadastro de clientes sao varios, entao criei uma classe exclusiva do popup …