Java by API/java.awt.datatransfer/StringSelection

Материал из Java эксперт
Перейти к: навигация, поиск

new StringSelection(String data)

   <source lang="java">

// : c14:CutAndPaste.java // Using the clipboard. // From "Thinking in Java, 3rd ed." (c) Bruce Eckel 2002 // www.BruceEckel.ru. See copyright notice in CopyRight.txt. 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.JFrame; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem; import javax.swing.JTextArea; public class Main extends JFrame {

 private JMenuBar mb = new JMenuBar();
 private JMenu edit = new JMenu("Edit");
 private JMenuItem cut = new JMenuItem("Cut"), copy = new JMenuItem("Copy"),
     paste = new JMenuItem("Paste");
 private JTextArea text = new JTextArea(20, 20);
 private Clipboard clipbd = getToolkit().getSystemClipboard();
 public Main() {
   cut.addActionListener(new CutL());
   copy.addActionListener(new CopyL());
   paste.addActionListener(new PasteL());
   edit.add(cut);
   edit.add(copy);
   edit.add(paste);
   mb.add(edit);
   setJMenuBar(mb);
   getContentPane().add(text);
 }
 class CopyL implements ActionListener {
   public void actionPerformed(ActionEvent e) {
     String selection = text.getSelectedText();
     if (selection == null)
       return;
     StringSelection clipString = new StringSelection(selection);
     clipbd.setContents(clipString, clipString);
   }
 }
 class CutL implements ActionListener {
   public void actionPerformed(ActionEvent e) {
     String selection = text.getSelectedText();
     if (selection == null)
       return;
     StringSelection clipString = new StringSelection(selection);
     clipbd.setContents(clipString, clipString);
     text.replaceRange("", text.getSelectionStart(), text
         .getSelectionEnd());
   }
 }
 class PasteL implements ActionListener {
   public void actionPerformed(ActionEvent e) {
     Transferable clipData = clipbd.getContents(Main.this);
     try {
       String clipString = (String) clipData
           .getTransferData(DataFlavor.stringFlavor);
       text.replaceRange(clipString, text.getSelectionStart(), text
           .getSelectionEnd());
     } catch (Exception ex) {
       System.err.println("Not String flavor");
     }
   }
 }
 public static void main(String[] args) {
   run(new Main(), 300, 200);
 }
 public static void run(JFrame frame, int width, int height) {
   frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
   frame.setSize(width, height);
   frame.setVisible(true);
 }

} ///:~

 </source>