- 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 )