Sans plus attendre, passons directement au code. Amis, lisez attentivement les commentaires.
Copiez le code comme suit :
/*Opérations simples des fonctions copier, couper et coller :
Test de copie : saisissez le texte, sélectionnez le texte, cliquez sur Copier, puis placez le curseur sur la zone de texte à droite, cliquez sur Coller. Test de coupe : saisissez le texte, sélectionnez le texte, puis placez le curseur sur la zone de texte à droite, cliquez sur Couper.
*/
importer javax.swing.* ;
importer java.awt.* ;
importer java.awt.datatransfer.* ;
importer java.awt.event.* ;
La démo de classe publique implémente ActionListener
{
JFrame privé jf ;
JPanel privé p1, p2, p3 ; //haut, milieu et bas
titre JLabel privé ;
édition privée de JTextArea, showMsg ;
copier, coller, couper un JButton privé ;
Presse-papiers du presse-papiers ; // Récupère le presse-papiers du système.
publicDemo()
{
this.init();
}
//initialisation de l'interface
initialisation vide publique()
{
jf = new JFrame("Copier et Coller");
p1 = new JPanel(); //Titre du stockage
p2 = new JPanel();//Stockage JTextArea showMsg
p3 = new JPanel(); //Bouton de stockage
title = new JLabel("Copier, Coller et Couper la démo");
edit = new JTextArea("Veuillez saisir le contenu",15,25);
edit.setLineWrap(true);
showMsg = nouveau JTextArea(15,25);
showMsg.setLineWrap(true);
showMsg.setEnabled(false);
copie = nouveau JButton("Copie");
coller = new JButton("Coller");
couper = nouveau JButton("couper");
clipboard = jf.getToolkit().getSystemClipboard();
p1.setLayout(nouveau FlowLayout());
p1.setSize(599,30);
p1.add(titre);
p2.setLayout(nouveau FlowLayout());
p2.setBackground(Color.gray);
p2.add(modifier);
p2.add(showMsg);
p3.setLayout(nouveau FlowLayout());
p3.add(copie);
p3.add(coller);
p3.add(couper);
//Ajouter un mécanisme d'écoute d'événements
copy.addActionListener(this);
coller.addActionListener(this);
cut.addActionListener(this);
// this.copyStr(copie);
jf.add(p1, BorderLayout.NORTH);
jf.add(p2, BorderLayout.CENTER);
jf.add(p3, BorderLayout.SOUTH);
jf.setLocation(400 200);
jf.setSize(600 450);
jf.setResizing(false);
jf.setVisible(true);
}
//gestion des événements
public void actionPerformed(ActionEvent e)
{
if(e.getSource() == copier)
{
String tempText = edit.getSelectedText(); //Faites glisser la souris pour sélectionner le texte
//Créez un transférable pouvant transférer la chaîne spécifiée.
StringSelection editText =
nouveau StringSelection(tempText);
/**
Définit le contenu actuel du presse-papiers sur l'objet transférable spécifié,
Et enregistre le propriétaire du presse-papiers spécifié en tant que propriétaire du nouveau contenu.
*/
clipboard.setContents(editText,null);
}else if(e.getSource() == couper)
{
String tempText = edit.getSelectedText();
StringSelection editText =
nouveau StringSelection(tempText);
clipboard.setContents(editText,null);
int start= edit.getSelectionStart();
int end = edit.getSelectionEnd();
showMsg.replaceRange("",start,end); //Supprime le texte sélectionné de Text1.
}else if(e.getSource() == coller)
{
Contenu transférable = clipboard.getContents(this);
Saveur DataFlavor = DataFlavor.stringFlavor ;
si (content.isDataFlavorSupported (saveur))
{
essayer
{
Chaîne chaîne ;
str = (String)contents.getTransferData(flavor);
showMsg.append(str);
}catch(Exception ex)
{
ex.printStackTrace();
}
}
}
}
public static void main (String[] arguments)
{
nouvelle démo ();
}
}
Le code est très simple et facile à utiliser. Si vous avez de meilleures idées, n'hésitez pas à me le dire.