pessoal tenho essas duas classes :
acesso.java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.text.*;
import java.text.*;
import java.util.*;
public class acesso extends JFrame {
private JPanel jContentPane1 = null;
private JTextField jTextField1 = null;
private JTextField jTextField2 = null;
MouseListener registra = new MostraPopup();
public static void main(String[ ] args) {
new acesso();
}
public acesso() {
super();
initialize();
}
private void initialize() {
this.setSize(500,500);
this.setContentPane(getjContentPane1());
this.setTitle("teste");
this.setResizable(false);
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.getContentPane().setBackground(Color.lightGray);
}
private JPanel getjContentPane1() {
if (jContentPane1 == null) {
jContentPane1 = new JPanel();
jContentPane1.setLayout(null);
jContentPane1.setVisible(true);
jContentPane1.add(getJTextField1());
jContentPane1.add(getJTextField2());
}
return jContentPane1;
}
private JTextField getJTextField1() {
if (jTextField1 == null) {
jTextField1 = new JTextField();
jTextField1.setVisible(true);
jTextField1.setBounds(100,10,100,30);
//jTextField1.addKeyListener(this);
jTextField1.addMouseListener(registra);
}
return jTextField1;
}
private JTextField getJTextField2() {
if (jTextField2 == null) {
jTextField2 = new JTextField();
jTextField2.setVisible(true);
jTextField2.setBounds(100,50,100,30);
jTextField2.addMouseListener(registra);
}
return jTextField2;
}
}
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;
public void mousePressed(MouseEvent e){
int esse = 0;
esse = e.getButton();
if ( esse == 3 ) mpopup.show(e.getComponent(),e.getX(), e.getY());
else esse = 0;
}
public MostraPopup(){
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);
}
public void actionPerformed(ActionEvent e){
if (e.getSource()==miSelecionar) {
JOptionPane.showMessageDialog(null, "seleciona" ,"Operador", JOptionPane.ERROR_MESSAGE);
//selectAll();
}
if (e.getSource()==miRecortar) {
JOptionPane.showMessageDialog(null, "recorta" ,"Operador",JOptionPane.ERROR_MESSAGE);
//cut();
}
if (e.getSource()==miCopiar) {
JOptionPane.showMessageDialog(null, "copia" ,"Operador",JOptionPane.ERROR_MESSAGE);
//copy();
}
if (e.getSource()==miColar) {
JOptionPane.showMessageDialog(null, "cola" ,"Operador",JOptionPane.ERROR_MESSAGE);
//paste();
}
}
}
no acesso.java tenho 2 textfield e a classe mostrapopup eh para copiar, colar, recortar, selecionar o que está nos textfields …
so que tem um problema, nao consigo fazer nada porque nos if do mostrapopup.java eu tenho que indicar daonde que vem, pra onde que vai, ou seja, tenho que colocar + ou - assim :
jtextfield1.copy();
jtextfield2.paste();
pra ele copiar do textfield1 e colar no textfield2
so que como num formulario de cadastro de cliente, voce nunca vai copiar de um textfield e colar no outro (voce joga numa variavel string, provavelmente) …
ou seja, para cada textfield, tenho que criar um mostrapopup, nos ifs colocaria assim, por exemplo :
num mostrapopup1
jtextfield1.copy();
jtextfield1.paste();
num mostrapopup2
jtextfield2.copy();
jtextfield2.paste();
esse eh o problema, quantos mostrapopup vou criar ???
queria uma classe unica, nao uma para cada textfield …