- Home ›
- Swing ›
- テキストエリアの作成(JTextAreaクラス) ›
- HERE
値の置き換え
広告
テキストエリアの値の一部を別の値に置き換えるにはJTextAreaクラスで定義されているreplaceRangeメソッドを使います。
replaceRange public void replaceRange(String str, int start, int end)
指定された開始位置から終了位置までのテキストを、新しい指定テキストで置き換えます。モデルが null の場合は何も行いません。新しい文字列が null または空の場合は、単純に delete を実行し ます。 パラメータ: str - 置き換えに使用するテキスト start - 開始位置 >= 0 end - 終了位置 >= start 例外: IllegalArgumentException - 範囲の一部がモデル内の無効な位置にある場合
1番目の引数に置き換える文字列を表すStringクラスのオブジェクト、2番目の引数に既存の値の中で置き換えたい値の開始位置、3番目の引数に終了位置を指定します。
実際の使い方は次のようになります。
JTextArea area = new JTextArea("今日の天気は曇りです");
area.replaceRange("快晴", 6, 8);
上記の場合、テキストエリアの値は"今日の天気は快晴です"となります。
サンプルプログラム
では実際に試してみます。
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.JButton;
import javax.swing.JScrollPane;
import java.awt.Container;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.text.BadLocationException;
class SSample15_1 extends JFrame{
JTextArea area;
JTextField text;
public static void main(String args[]){
SSample15_1 frame = new SSample15_1("タイトル");
frame.setVisible(true);
}
SSample15_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 scrollpane = new JScrollPane(area);
scrollpane.setPreferredSize(new Dimension(200, 120));
p.add(scrollpane);
JPanel bottomp = new JPanel();
text = new JTextField(10);
JButton button = new JButton("置き換え");
button.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent event){
try{
int start = area.getLineStartOffset(1);
int end = area.getLineEndOffset(1);
area.replaceRange(text.getText(), start, end - 1);
}catch(BadLocationException e){
System.out.println("Bad Location Error!");
}
}
}
);
bottomp.add(text);
bottomp.add(button);
Container contentPane = getContentPane();
contentPane.add(p, BorderLayout.CENTER);
contentPane.add(bottomp, BorderLayout.SOUTH);
}
}
ではコンパイルを行った上で実行してみます。
まずテキストエリアに文字列を入力します。その後で、画面下部のテキストフィールドに置き換えたい文字列を入力し「置き換え」ボタンを押すと、既存のテキストエリアの値の2行目の値が置き換えられます。
( Written by Tatsuo Ikura )
JavaDrive