Как скопировать текст в буфер обмена в Java?

Опубликовано: 22 Февраля, 2023

Мы рассмотрим некоторый исходный код метода Java, который позволяет копировать тексты в буфер обмена вашей операционной системы. Java предоставляет класс Clipboard, который находится в java.awt.data transfer. Буфер обмена обеспечивает важные функции графического пользовательского интерфейса (GUI), а именно КОПИРОВАТЬ (CTRL+C), ВСТАВИТЬ (CTRL+V) и ВЫРЕЗАТЬ (CTRL+X).

  • To get the reference of Clipboard  via Toolkit is: Toolkit toolkit=Toolkit.getDefaultToolkit();
  • To Obtain the Clipboard reference: Clipboard clipboard=Toolkit.getDefaultToolkit().getSystemClipboard();

Подход

Предположим, мы хотим выполнить операцию копирования (аналогично нажатию Ctrl+C) строкового значения и вставить его в буфер обмена с помощью операции вставки (Ctrl+V). Чтобы было ясно, мы скопируем строку, не вводя команду Ctrl + C с клавиатуры, вместо этого мы скопируем строку через исходный код Java.

Шаги:

Следующие шаги будут выполнены для копирования текстов в буфер обмена.

  1. ОТКРЫТЬ ЛЮБУЮ JAVA IDE. Здесь мы будем использовать Spring Tool Suite (STS) Java IDE.
  2. ПЕРЕЙТИ К ФАЙЛУ После открытия Java IDE.
  3. ПЕРЕЙТИ К НОВОМУ, т.е. нажмите ALT+SHIFT+N
  4. НАЖМИТЕ на Java-проект

Дайте название проекта и заполните другие необходимые поля соответственно.

После заполнения всех необходимых полей нажмите «Готово» . Перейдите в папку src созданного вами проекта. Щелкните правой кнопкой мыши файл src и создайте пакет. Щелкните правой кнопкой мыши созданный выше пакет. Создайте класс Java . Код приведен ниже.

Java




package First_Java_Project;
  
import java.awt.Toolkit;
import java.awt.datatransfer.Clipboard;
import java.awt.datatransfer.StringSelection;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
  
@SuppressWarnings("serial")
public class copytoClipboard
    extends JFrame implements ActionListener {
    
    JTextField t1;
    JButton b1;
    
    copytoClipboard()
    {
        setLayout(null);
        t1 = new JTextField();
        t1.setBounds(20, 40, 400, 200);
        add(t1);
        b1 = new JButton("COPY CONTENT!");
        b1.setBounds(70, 270, 150, 50);
        b1.addActionListener(this);
        add(b1);
  
        setVisible(true);
        setBounds(200, 90, 500, 500);
    }
    
    public static void main(String args[])
    {
        new copytoClipboard();
    }
    
    @Override 
    public void actionPerformed(ActionEvent e)
    {
        String str = t1.getText();
        Clipboard clip = Toolkit.getDefaultToolkit()
                             .getSystemClipboard();
        StringSelection strse1 = new StringSelection(str);
        clip.setContents(strse1, strse1);
        JOptionPane.showMessageDialog(null,
                                      "TEXTS ARE COPIED!");
    }
    
}
  
// This code is contributed by Rahul Chauhan.

После написания кода он покажет ошибки в написанном исходном коде.

NOTE: IMPORT NEEDED PACKAGES, CLASSES, AND LIBRARIES.

После импорта и устранения всех ошибок запустите проект Java . Наблюдайте за событиями, появится всплывающее окно. В появившемся окне напишите содержимое, которое хотите скопировать.

Нажмите на кнопку КОПИРОВАТЬ СОДЕРЖИМОЕ! Появится окно сообщения с сообщением, что ТЕКСТЫ КОПИИРОВАНЫ!

Теперь перейдите в Блокнот или любой другой инструмент редактирования, чтобы проверить, не копируются ли тексты. Используйте CTRL+V, чтобы вставить его. Наконец, мы сможем увидеть, что написанный текст внутри окна будет скопирован. Т.е. Готово с копированием текстов в буфер обмена с помощью Java.