Rechercher
 

Améliorations / Corrections

Vous avez des améliorations (ou des corrections) à proposer pour ce document : je vous remerçie par avance de m'en faire part, cela m'aide à améliorer le site.

Emplacement :

Description des améliorations :

Swing - Gestion du presse-papier

Appliquer un « look'n feel »



Ce petit exemple vous montre comment utiliser le clipboard (le presse papier) du système d'exploitation sous jacents pour échanger des données entre votre application Java et d'éventuelles autres applications. Il est vrai que les séquences de touches pour le copy, cut and paste (copier, couper et coller) sont déjà implémentées sur un composant JTextArea. Cependant, il vous est ici montré comment réaliser ces tâches, mais par programmation.

ces possibilités vous sont offertes par l'intermédiaire de la Toolkit AWT ainsi que par le package java.awt.datatransfer et ce, même avec une application Swing.
 1 
 2 
 3 
 4 
 5 
 6 
 7 
 8 
 9 
 10 
 11 
 12 
 13 
 14 
 15 
 16 
 17 
 18 
 19 
 20 
 21 
 22 
 23 
 24 
 25 
 26 
 27 
 28 
 29 
 30 
 31 
 32 
 33 
 34 
 35 
 36 
 37 
 38 
 39 
 40 
 41 
 42 
 43 
 44 
 45 
 46 
 47 
 48 
 49 
 50 
 51 
 52 
 53 
 54 
 55 
 56 
 57 
 58 
 59 
 60 
 61 
 62 
 63 
 64 
import java.awt.Dimension;
import java.awt.Rectangle;
import java.awt.Toolkit;
import java.awt.datatransfer.Clipboard;
import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.StringSelection;
import java.awt.datatransfer.Transferable;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextArea;

public class TestClipboard extends JFrame {
    
    private JTextArea txtArea = new JTextArea();
    private JButton btnFrom = new JButton("Copy from System Clipboard");
    private JButton btnTo = new JButton("Copy to System Clipboard");

    public TestClipboard() {
        this.setTitle("Test Clipboard");
        this.setSize(new Dimension(406, 280));
        this.setDefaultCloseOperation( DISPOSE_ON_CLOSE );

        txtArea.setBounds(new Rectangle(9, 9, 381, 197));

        btnFrom.setBounds(new Rectangle(192, 214, 199, 23));
        btnFrom.addActionListener( this::btnFrom_actionPerformed );

        btnTo.setBounds(new Rectangle(9, 214, 179, 23));
        btnTo.addActionListener( this::btnTo_actionPerformed );

        JPanel contentPane = (JPanel) this.getContentPane();
        contentPane.setLayout(null);
        contentPane.add(this.txtArea);
        contentPane.add(this.btnFrom);
        contentPane.add(this.btnTo);
    }

    void btnTo_actionPerformed(ActionEvent event) {
        Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
        StringSelection data = new StringSelection(this.txtArea.getText());
        clipboard.setContents (data, data);
    }

    void btnFrom_actionPerformed(ActionEvent event) {
        Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
        Transferable clipData = clipboard.getContents(clipboard);
        if (clipData != null) {
            try {
                String content = (String)(clipData.getTransferData(DataFlavor.stringFlavor));
                this.txtArea.setText(content);
            } catch (Exception exc) {
                exc.printStackTrace();
            }
        }
    }
    
    public static void main(String[] args) {
        new TestClipboard().setVisible(true);
    }
}
Exemple d'utilisation de la classe JCheckBox


Appliquer un « look'n feel »