Sin más preámbulos, vayamos directamente al código. Amigos, lean atentamente los comentarios.
Copie el código de código de la siguiente manera:
/*Operaciones simples de función copiar, cortar y pegar:
Copiar prueba: ingrese texto, seleccione texto, haga clic en Copiar, luego coloque el cursor en TextArea a la derecha, haga clic en Pegar prueba: ingrese texto, seleccione texto, luego coloque el cursor en TextArea a la derecha, haga clic en Cortar.
*/
importar javax.swing.*;
importar java.awt.*;
importar java.awt.datatransfer.*;
importar java.awt.event.*;
La demostración de clase pública implementa ActionListener
{
JFrame privado jf;
JPanel privado p1, p2, p3 //arriba, medio e inferior;
título JLabel privado;
edición privada de JTextArea, mostrar mensaje;
copiar, pegar, cortar JButton privado;
Portapapeles portapapeles;//Obtener el portapapeles del sistema.
demostración pública()
{
this.init();
}
//inicialización de la interfaz
inicio público vacío()
{
jf = nuevo JFrame("Copiar y Pegar");
p1 = nuevo JPanel(); //Título de almacenamiento
p2 = nuevo JPanel();//Almacenamiento JTextArea showMsg
p3 = nuevo JPanel(); //Botón de almacenamiento
título = new JLabel("Copiar, pegar y cortar demostración");
editar = new JTextArea("Ingrese el contenido",15,25);
editar.setLineWrap(verdadero);
showMsg = nuevo JTextArea(15,25);
showMsg.setLineWrap(verdadero);
showMsg.setEnabled(falso);
copiar = nuevo JButton("Copiar");
pegar = nuevo JButton("Pegar");
cortar = nuevo JButton("cortar");
portapapeles = jf.getToolkit().getSystemClipboard();
p1.setLayout(nuevo FlowLayout());
p1.setSize(599,30);
p1.add(título);
p2.setLayout(nuevo FlowLayout());
p2.setBackground(Color.gris);
p2.add(editar);
p2.add(mostrar mensaje);
p3.setLayout(nuevo FlowLayout());
p3.add(copiar);
p3.add(pegar);
p3.add(cortar);
//Agregar mecanismo de escucha de eventos
copy.addActionListener(esto);
pegar.addActionListener(esto);
cut.addActionListener(esto);
// this.copyStr(copiar);
jf.add(p1, BorderLayout.NORTE);
jf.add(p2, BorderLayout.CENTER);
jf.add(p3, BorderLayout.SUR);
jf.setLocation(400,200);
jf.setSize(600,450);
jf.setResizable(falso);
jf.setVisible(verdadero);
}
//manejo de eventos
acción nula pública realizada (ActionEvent e)
{
if(e.getSource() == copiar)
{
String tempText = edit.getSelectedText(); //Arrastra el mouse para seleccionar el texto.
//Crea un Transferible que pueda transferir la Cadena especificada.
Selección de cadena editarTexto =
nueva StringSelection (texto temporal);
/**
Establece el contenido actual del portapapeles en el objeto transferible especificado,
Y registra al propietario del portapapeles especificado como propietario del nuevo contenido.
*/
portapapeles.setContents(editText,null);
}si no (e.getSource() == cortar)
{
Cadena tempText = edit.getSelectedText();
Selección de cadena editarTexto =
nueva StringSelection (texto temporal);
portapapeles.setContents(editText,null);
int inicio= editar.getSelectionStart();
int fin = editar.getSelectionEnd();
showMsg.replaceRange("",start,end); //Elimina el texto seleccionado de Text1.
}de lo contrario si (e.getSource() == pegar)
{
Contenidos transferibles = clipboard.getContents(this);
Sabor DataFlavor= DataFlavor.stringFlavor;
if( contenidos.isDataFlavorSupported(sabor))
{
intentar
{
cadena cadena;
str = (Cadena)contents.getTransferData(sabor);
showMsg.append(cadena);
}captura(Excepción ex)
{
ex.printStackTrace();
}
}
}
}
principal vacío estático público (String [] argumentos)
{
nueva demostración();
}
}
El código es muy simple y fácil de usar. Si tienen mejores ideas, asegúrese de decírmelo.