- PR -

JTextAreaの決められた行数以上の入力不可

1
投稿者投稿内容
やま
会議室デビュー日: 2004/07/08
投稿数: 1
お住まい・勤務地: 千葉
投稿日時: 2005-07-27 21:26
初めて投稿させていただきます。
JTextAreaに以下のような入力制限をかけようとしています。

■決められた行数以上の入力不可
 意図的に改行をした場合は改行コードを検知してそれ以上改行できないように制限できるのですが、
 入力時にエリアの横幅を超えて自動改行された場合、表示は2行、3行・・・になっちゃいます。
 JTextArea#getLineCount()は1が返ってきます。
 たとえば2行しか入力できないAreaの場合は、自動改行も含めて2行しか入力できないように
 したいのです。なんか説明が難しいです。。。
 自動的に改行されて表示行数が制限より超えた場合はそれ以上入力できない
 または、入力された文字列の後ろ数文字を削る。(日本語の場合は文字確定時)
 JTextArea#getLineEndOffset()をつかって、制限行数目のオフセットが0以上に
 なったら入力できないようにしようと思っても、JTextArea#getLineEndOffset()自体がJTextArea#getLineCount()を
 使用しているみたいでうまく表示行数を取得できません。
 エリア1行に入力できるオフセット数を取得してやろうとしても、1バイト文字列2バイト文字列が
 からむとさらに難しくなってきて、文字列を途中に挿入した場合なども想定すると、パンクしそうです。
 何かいい案も含めてございましたらご教授いただきたいです(T-T
1

スキルアップ/キャリアアップ(JOB@IT)