選択されている値の取得

広告

テキストエリアに入力された値の中でマウスなどによって選択状態になっている値だけを取得する方法を確認します。JTextAreaクラスの親クラスであるJTextComponentで用意されているgetSelectedTextメソッドを使います。

この TextComponent に格納された選択されているテキストを返します。選択領域が null であるか、
ドキュメントが空の場合は、null を返します。 

戻り値:
  テキスト 
例外:
  IllegalArgumentException - 選択領域がなんらかの理由でドキュメントへの有効なマッピングを
    持たない場合

getSelectedTextメソッドを実行すると、テキストエリアに入力済みの値の中で選択されている値を取得します。

実際の使い方は次のようになります。

JTextArea area = new JTextArea("こんにちは");
String str = area.getSelectedText();

サンプルプログラム

では実際に試してみます。

SSample13_1.java

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import javax.swing.JButton;
import javax.swing.JScrollPane;
import java.awt.Container;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Color;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;

class SSample13_1 extends JFrame{

  JTextArea area;
  JTextArea disparea;

  public static void main(String args[]){
    SSample13_1 frame = new SSample13_1("タイトル");
    frame.setVisible(true);
  }

  SSample13_1(String title){
    setTitle(title);
    setBounds(100, 100, 300, 250);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    JPanel p = new JPanel();

    area = new JTextArea();
    area.setLineWrap(true);
    JScrollPane scrollpane1 = new JScrollPane(area);
    scrollpane1.setPreferredSize(new Dimension(120, 120));

    disparea = new JTextArea();
    disparea.setLineWrap(true);
    disparea.setEditable(false);
    disparea.setBackground(Color.LIGHT_GRAY);
    JScrollPane scrollpane2 = new JScrollPane(disparea);
    scrollpane2.setPreferredSize(new Dimension(120, 120));

    JButton button1 = new JButton("選択部分を取得");
    button1.addActionListener(
      new ActionListener(){
        public void actionPerformed(ActionEvent event){
          disparea.setText(area.getSelectedText());
        }
      }
    );

    p.add(scrollpane1);
    p.add(scrollpane2);
    p.add(button1);

    Container contentPane = getContentPane();
    contentPane.add(p, BorderLayout.CENTER);
  }
}

ではコンパイルを行った上で実行してみます。

選択されている値の取得

左側のテキストエリアに文字列を入力し、その中の一部分を選択して後で「取得」ボタンを押すと、選択された部分を取得して右側のテキストエリアに表示します。

選択されている値の取得

選択されている値の取得

( Written by Tatsuo Ikura )