これは私の初めてのStackExchange Webサイトです。JTextAreaが特定の行数を超えたときにスクロールバーを有効にする
私はJavaで 'ローカル'チャットプログラムを作っていて、チャット入力にJTextFieldを使っていました。しかし、私はJTextAreaに切り替えたので、複数のチャットを許可したいと思っていました。簡単なウィンドウ/コンポーネントのサイズ変更のためにGroupLayout(Window Builder Pro - Eclipseで構築)を使用しています。ここで絵です:
JTabbedPaneのは、JTextAreaにして[送信]ボタンは、すべてのJPanelに含まれており、左のすべてのものは、それ自身のJPanelです。そこで、私はJTextAreaとボタンを右のJPanelの底にドッキングさせました。 JTextAreaは垂直方向にサイズ変更することができますが、ボタンはサイズ変更できません。 私は、下記のショー私は新しい行を入力すると、JTextAreaには、垂直方向に成長してもらうことができました:
しかし、私は、私はにラインの一定量を入力すると、そのような方法を考えることができませんよJTextAreaのスクロールバーが表示され、JTextAreaがそれ以上のスペースを占めるのを防ぎます。 JScrollPaneでJTextAreaをラップしようとしましたが、スクロールバーを最初に無効にしてからJTextAreaをスクロールする必要があるときにスクロールバーを有効にしましたが、ラップするとJScrollPaneは成長しません。スクロールバーは表示されますが、スクロールバーは表示されません。 :/
**私はここにリンクを置くことを望んでいたが、StackOverflowのが私を好きではない。だから、
)、私は一種のこだわっている... は、私は「これを行うものがあります私は行方不明? 私は、2つの異なるGroupLayoutオブジェクトを作成できると考えていました.1つは有効なスクロールペインで、もう1つはスクロールペインで有効ですが特定のサイズでスタックされたオブジェクトです。 keyPressリスナーで、テキスト領域が一定の制限を超えているかどうかを確認してから、パネルのレイアウトを切り替えることができましたか?内側のJTextAreaは依然として同じオブジェクトですが、異なるレイアウトオブジェクトです。そのアプローチに関する意見は?
とにかく、これに答える時間をとるすべての人に、事前に感謝します。 :)
ありがとうsoooo! DocumentListenerコードを使用して、GroupLayoutにカスタム変更を加えました。これは、魅力的に機能します。D –
+1 for 'DocumentListener';関連する[example](http://stackoverflow.com/q/15039652/230513)も参照してください。 – trashgod
私はこの質問が5年間でアクティブではないことを知っていますが、あなたの答え、@ughzanを参照すると、 'revalidate()'コードはJScrollPaneやJTextAreaの親である他の要素でも動作しますか? – Ryan