Classe copia - cola

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 …

completando …

ou por exemplo, eu posso copiar o valor de um textfield1 e colar num textfield4, ou recortar de um textfield3 para um textfield1 …

ou seja, o valor daonde vai copiar, colar varia de textfield para textfield …

tem que ser no textfield em que o usuario clicou pela ultima vez …

Ola…

Nao acho necessario tu saber de qual JTextField voce esta copiando e pra onde quer copiar…

Entao a solucao que eu dou é a seguinte…

  • Crie um MouseListener para cada JTextField…
  • Descubra como capturar o click do botao direito do mouse
  • Instancie a classe MostraPopup uam vez… ou procure algo sobre Singleton(acho que é assim que se escreve), esse tipo de classe garante que tu tenha uma unica instancia dela.
  • e faça com que, quando voce clicar em copiar… ele atribua o valor da JTextField para uma string qualquer… e quando clicar em copiar… voce atribua o valor dessa mesma string para o JtextField…

Qualquer coisa… pede ai que eu tenta dar uma explicacao mais detalhada…
abracos…

as 2 primeiras opções eu já fiz …

falta apenas a 3º, ai que eu parei …

pode explicar melhor, se tiver manda um exemplo …

sera que alguem pode me ajudar ???

Tem que copiar o valor do textfield em que ele clicou por ultimo e colar no textfield que ele clicou por ultimo, como faco isso ???