選択されている値の取得

広告

テキストフィールドに入力された値の中でマウスなどによって選択状態になっている値だけを取得するには、JTextFieldクラスの親クラスであるJTextComponentで用意されているgetSelectedTextメソッドを使います。

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

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

メソッドを実行するとテキストフィールドに入力されているテキストの中で選択状態となっている値を戻り値として取得できます。

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

JTextField text = new JTextField("初期値");
String str = text.getSelectedText();

サンプルプログラム

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

SSample10_1.java

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.JButton;
import javax.swing.JLabel;
import java.awt.Container;
import java.awt.BorderLayout;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;

class SSample10_1 extends JFrame implements ActionListener{

  JTextField text;
  JLabel label;

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

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

    JPanel p = new JPanel();

    text = new JTextField("住所", 20);
    JButton button = new JButton("選択部分を取得");
    button.addActionListener(this);
    label = new JLabel();

    p.add(text);
    p.add(button);

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

  public void actionPerformed(ActionEvent e){
    label.setText(text.getSelectedText());
  }
}

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

選択されている値の取得

テキストフィールドに値を入力した後で一部を選択します。その後で「選択部分を取得」ボタンを押すとテキストフィールドに入力された値の中で選択された部分を取得して画面下のラベルに表示します。

選択されている値の取得

選択されている値の取得

( Written by Tatsuo Ikura )