希望详细点。最好有个小例子。谢谢

解决方案 »

  1.   

    呵~~
    仓促中给你写个例子,希望对你有所帮助,实现从左边窗口中剪切到右窗口。
    import javax.swing.JFrame;
    import java.awt.event.ActionListener;
    import javax.swing.JMenuBar;
    import javax.swing.JMenu;
    import javax.swing.JMenuItem;
    import java.awt.event.ActionEvent;
    import javax.swing.JTextArea;
    import javax.swing.JPanel;
    import java.awt.datatransfer.StringSelection;
    import java.awt.datatransfer.Clipboard;
    import java.awt.Toolkit;
    import java.awt.datatransfer.Transferable;
    import java.awt.datatransfer.DataFlavor;public class Trans extends JFrame {
        JMenuBar jMenuBar1 = new JMenuBar();    JMenu jMenu1 = new JMenu("Edit");    JMenuItem cut = new JMenuItem("Cut");    JMenuItem paste = new JMenuItem("Paste");    JTextArea text1 = new JTextArea(20, 20);    JTextArea text2 = new JTextArea(20, 20);
        JPanel contentPane = new JPanel();
        Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();    public Trans(String s) {
            super(s);
            jMenuBar1.add(jMenu1);
            jMenu1.add(cut);
            jMenu1.add(paste);
            this.setJMenuBar(jMenuBar1);
            contentPane.add(text1);
            contentPane.add(text2);
            this.setContentPane(contentPane);
            cut.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent ae) {
                    String temp = text1.getSelectedText();
                    StringSelection text = new StringSelection(temp);
                    clipboard.setContents(text, null);
                    int nStart = text1.getSelectionStart();
                    int nEnd = text1.getSelectionEnd();
                    text1.replaceRange("", nStart, nEnd);
                }
            });
            paste.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent ae) {
                    Transferable contents = clipboard.getContents(this);
                    DataFlavor flavor = DataFlavor.stringFlavor;
                    if(contents.isDataFlavorSupported(flavor)) {
                        try {
                            String str = (String)contents.getTransferData(flavor);
                            text2.append(str);
                        } catch (Exception e) {
                            text1.setText(e.getMessage());
                        }
                    }
                }
            });
            this.setBounds(100, 100, 500, 450);
            this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            this.show();
        }
        public static void main(String[] args) {
            new Trans("Demo Clipborad");
        }
    }