Java
 Computer >> コンピューター >  >> プログラミング >> Java

JavaのJTextFieldで切り取り・コピー・貼り付け機能を実装する方法

JTextFieldは、1行のテキストの編集を可能にするJTextComponentクラスのサブクラスです。JTextFieldコンポーネントに切り取り・コピー・貼り付けの機能を実装するには、cut()copy()paste()という各メソッドを使用します。これらはJTextComponentクラスにあらかじめ定義されているメソッドのため、追加の実装を行わなくてもすぐに呼び出して利用できます。

メソッドの構文

public void cut()
public void copy()
public void paste()

各メソッドの役割

  • cut():選択されているテキストをクリップボードへ移動し、テキストフィールドから削除します。
  • copy():選択されているテキストをクリップボードへコピーします(元のテキストは残ります)。
  • paste():クリップボードの内容を、カーソル(キャレット)の現在位置に貼り付けます。

実装例

以下のサンプルでは、JTextFieldと「Cut」「Copy」「Paste」の3つのJButtonを作成し、各ボタンがクリックされたタイミングで対応するメソッドを呼び出しています。さらに、CaretListenerを登録することで、テキストの内容や選択範囲が変わるたびにコンソールへ情報を出力するようにしています。

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;

public class JTextFieldCutCopyPasteTest extends JFrame {
   private JTextField textField;
   private JButton cutButton, copyButton, pasteButton;

   public JTextFieldCutCopyPasteTest() {
      setTitle("JTextField CutCopyPaste Test");
      setLayout(new FlowLayout());
      textField = new JTextField(12);
      cutButton = new JButton("Cut");
      pasteButton = new JButton("Paste");
      copyButton = new JButton("Copy");

      cutButton.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent ae) {
            textField.cut();
         }
      });
      copyButton.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent ae) {
            textField.copy();
         }
      });
      pasteButton.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent le) {
            textField.paste();
         }
      });
      textField.addCaretListener(new CaretListener() {
         public void caretUpdate(CaretEvent ce) {
            System.out.println("All text: " + textField.getText());
            if (textField.getSelectedText() != null)
               System.out.println("Selected text: " + textField.getSelectedText());
            else
               System.out.println("Selected text: ");
         }
      });
      add(textField);
      add(cutButton);
      add(copyButton);
      add(pasteButton);
      setSize(375, 250);
      setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      setLocationRelativeTo(null);
      setVisible(true);
   }

   public static void main(String args[]) {
      new JTextFieldCutCopyPasteTest();
   }
}

実行結果

プログラムを実行すると、テキストフィールドと3つのボタンが配置されたウィンドウが画面中央に表示されます。テキストを選択した状態で各ボタンをクリックすると、切り取り・コピー・貼り付けが正しく動作し、操作のたびにCaretListenerによって現在の全テキストと選択中のテキストがコンソールに出力されます。

JavaのJTextFieldで切り取り・コピー・貼り付け機能を実装する方法

  1. PuTTYでコピー&ペーストする方法!Ctrl+C/Vが使えない理由と3つの代替手順

    PuTTYは、最も人気のあるオープンソースのターミナルエミュレータおよびネットワークファイル転送アプリケーションの1つです。20年以上にわたって広く利用されてきましたが、その基本的な機能の一部は、多くのユーザーにとってまだ馴染みが薄いのが実情です。その代表例が、コマンドのコピーペースト機能です。外部からコマンドを入力するのに苦労している方は、このガイドでPuTTYにおけるコマンドのコピーペースト方法をぜひ確認してください。 PuTTYでコピー&ペーストを行う方法 PuTTYでCtrl + C / Ctrl + Vは使える? 残念ながら、Windowsで定番となっているコピー・貼り付けのショー

  2. Chromebookでのコピー&ペースト方法まとめ|ショートカットキーからクリップボード管理まで徹底解説

    Chromebookは、軽量なOSを搭載している点と、Androidアプリをほぼ問題なく動作させられる点から、人気が高まり続けています。ノートパソコンユーザーは、映画鑑賞・ゲーム・メールの送受信・文書の読み書きといった比較的軽い作業が中心のユーザーと、本格的なプロ向けの作業を行うユーザーに大別されます。ヘビーユースにはWindowsノートPCが適していますが、Windows Core OS搭載機が登場するまでの間、軽めの作業用途にはChromebookが最適な選択肢と言えるでしょう。 ただし、多くの方はWindowsノートPCの操作に慣れているため、独自のコマンドや操作体系を持つChromeb