JTextAreaが特定の行数を超えたときにスクロールバーを有効にする

ブラッドリーオデル:

StackExchangeのWebサイトを使用するのは今回が初めてなので、どうなるか見てみましょう。

そのため、私はJavaで「ローカル」チャットプログラムを作成しており、チャット入力にJTextFieldを使用していました。しかし、複数行のチャットを許可したかったので、JTextAreaに切り替えました。ウィンドウ/コンポーネントのサイズ変更を簡単にするために、GroupLayout(Window Builder Pro-eclipseで構築)を使用しています。ここに写真があります:

ここに画像の説明を入力してください

JTabbedPane、JTextArea、および送信ボタンはすべてJPanelに含まれており、左側にあるものはすべて独自のJPanelに含まれています。つまり、JTextAreaとボタンが右側のJPanelの下部にドッキングされています。JTextAreaは垂直方向にサイズ変更できますが、ボタンはそうではありません。新しい行を入力すると、JTextAreaを垂直方向に成長させることができました。以下に示します。

ここに画像の説明を入力してください

But I'm unable to think up a way so that if I enter a certain amount of lines into the JTextArea, scrollbars will appear and prevent the JTextArea from taking up any more space. So I tried wrapping the JTextArea in a JScrollPane but disable to scrollbars initially and then enable them when I needed the JTextArea to start scrolling, but I learned that if I wrap it, the JScrollPane won't grow but will still act like it would with the scrollbars visible but... without them. :/

** I wanted to put a link here, but StackOverflow doesn't like me ;)

だから、私はちょっと行き詰まっています...これを欠いている何かがありますか?私は2つの異なるGroupLayoutオブジェクトを作成できると考えていました。1つはスクロールペインが無効であり、もう1つは有効なスクロールペインで特定のサイズのままです。keyPressリスナーで、テキスト領域が特定の制限を超えているかどうかを確認してから、パネルのレイアウトを切り替えることができますか?内部のJTextAreaは同じオブジェクトですが、異なるレイアウトオブジェクトです。そのアプローチについての意見?

とにかく、これに答えるために時間を割いてくれたすべての人に前もって感謝します。:)

ughzan:

Swingコントロールのみを使用して、JTextAreaを最大4行にサイズ変更する小さなプログラムを作成しました

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.border.EmptyBorder;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;

public class ResizeTextArea {

    public static final int CHAT_ROW_LIMIT = 4;

    public static void main(String[] args) {
        JPanel topPanel = new JPanel();
        topPanel.setPreferredSize(new Dimension(200, 200));
        topPanel.setBackground(Color.WHITE);

        final JTextArea chatArea = new JTextArea();
        final JScrollPane scrollPane = new JScrollPane(chatArea);

        final JPanel mainPanel = new JPanel(new BorderLayout(5,5));
        mainPanel.setBorder(new EmptyBorder(5, 5, 5, 5));
        mainPanel.add(topPanel, BorderLayout.CENTER);
        mainPanel.add(scrollPane, BorderLayout.SOUTH);

        chatArea.getDocument().addDocumentListener(new DocumentListener() {

            @Override
            public void insertUpdate(DocumentEvent e) {
                updateLineCount();
            }

            @Override
            public void removeUpdate(DocumentEvent e) {
                updateLineCount();
            }

            @Override
            public void changedUpdate(DocumentEvent e) {
                updateLineCount();
            }

            private void updateLineCount() {
                int lineCount = chatArea.getLineCount();
                if (lineCount <= CHAT_ROW_LIMIT) {
                    chatArea.setRows(lineCount);
                    mainPanel.revalidate();
                }
            }
        });

        JFrame f = new JFrame("ResizeTextArea");
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        f.add(mainPanel);
        f.pack();
        f.setVisible(true);
    }
}

以下は、1行、4行、8行の検索方法です。

1行4ライン8ライン

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

ユーザーが特定のポイントを超えてスクロールしたときに「クリック」機能を無効にする

分類Dev

ユーザーが特定のdivを超えてスクロールしたときにcssを変更する

分類Dev

特定のdivを超えてスクロールしたときにメニューの色を変更する

分類Dev

コンテンツの幅が<img>兄弟の幅を超えたときに<figcaption>レンダリングスクロールバーを作成する

分類Dev

セルがないときにUICollectionViewのバウンス/スクロールを有効にする

分類Dev

ユーザーが配列内のdivを超えてスクロールしたときを追跡する

分類Dev

要素がスクロールして行を超えたときに要素の CSS プロパティを変更する

分類Dev

JTextAreaをスクロール可能にすることができません。

分類Dev

JavaFXは非表示のスクロールバーでスクロールを有効にすることができますか?

分類Dev

使用率が85%を超えたときにメールをトリガーするスクリプト

分類Dev

スクロールバーがリストの一番下にあるときに、ボタンをフラッターで有効にする

分類Dev

親の高さを超えたときに子のdivをスクロール可能にするにはどうすればよいですか?

分類Dev

UIBezierPathがしきい値を超えたときにストロークとパスの色を変更する方法

分類Dev

指の動きが画面の20%を超える場合にのみスクロールします

分類Dev

データを表示する場所を選択するために、クリスタルの行数を数えることができますか?

分類Dev

最大値を超えたときにプログレスバーがクラッシュしないようにする方法

分類Dev

RecyclerviewアイテムがRecyclerviewの上部を超えてスクロールできるようにする

分類Dev

JTextArea-クラスにスクロールバーを追加すると、JFrameが拡張されます

分類Dev

オーバーフローが発生したときに無効なスクロールバーを非表示にする

分類Dev

特定のIDでページスクロールが到達したときにクラスを追加する

分類Dev

VueJsにロードされたとき(最大コールスタックサイズを超えたとき)にビデオを表示する

分類Dev

隠された効果を下にスクロールするときのFloatingActionButton

分類Dev

ビルドキューが特定の長さを超えたときに警告メールを送信するにはどうすればよいですか?

分類Dev

特定のdivを超えてスクロールしたときにスティッキーナビゲーションの色を変更するにはどうすればよいですか?

分類Dev

scrollViewの制限を超えてスクロールしようとしたときにドラッグの方向を検出する

分類Dev

JTextAreaに垂直スクロールバーを追加する

分類Dev

スクロールバーを非表示にしながら、ビューポートを超える高さのdivをスクロールできるようにするにはどうすればよいですか?

分類Dev

WPFで垂直スクロールバーを使用するときに有効になるDatepicker列

分類Dev

特定のボタンがクリックされたときにデータテーブルの並べ替えを無効にする方法

Related 関連記事

  1. 1

    ユーザーが特定のポイントを超えてスクロールしたときに「クリック」機能を無効にする

  2. 2

    ユーザーが特定のdivを超えてスクロールしたときにcssを変更する

  3. 3

    特定のdivを超えてスクロールしたときにメニューの色を変更する

  4. 4

    コンテンツの幅が<img>兄弟の幅を超えたときに<figcaption>レンダリングスクロールバーを作成する

  5. 5

    セルがないときにUICollectionViewのバウンス/スクロールを有効にする

  6. 6

    ユーザーが配列内のdivを超えてスクロールしたときを追跡する

  7. 7

    要素がスクロールして行を超えたときに要素の CSS プロパティを変更する

  8. 8

    JTextAreaをスクロール可能にすることができません。

  9. 9

    JavaFXは非表示のスクロールバーでスクロールを有効にすることができますか?

  10. 10

    使用率が85%を超えたときにメールをトリガーするスクリプト

  11. 11

    スクロールバーがリストの一番下にあるときに、ボタンをフラッターで有効にする

  12. 12

    親の高さを超えたときに子のdivをスクロール可能にするにはどうすればよいですか?

  13. 13

    UIBezierPathがしきい値を超えたときにストロークとパスの色を変更する方法

  14. 14

    指の動きが画面の20%を超える場合にのみスクロールします

  15. 15

    データを表示する場所を選択するために、クリスタルの行数を数えることができますか?

  16. 16

    最大値を超えたときにプログレスバーがクラッシュしないようにする方法

  17. 17

    RecyclerviewアイテムがRecyclerviewの上部を超えてスクロールできるようにする

  18. 18

    JTextArea-クラスにスクロールバーを追加すると、JFrameが拡張されます

  19. 19

    オーバーフローが発生したときに無効なスクロールバーを非表示にする

  20. 20

    特定のIDでページスクロールが到達したときにクラスを追加する

  21. 21

    VueJsにロードされたとき(最大コールスタックサイズを超えたとき)にビデオを表示する

  22. 22

    隠された効果を下にスクロールするときのFloatingActionButton

  23. 23

    ビルドキューが特定の長さを超えたときに警告メールを送信するにはどうすればよいですか?

  24. 24

    特定のdivを超えてスクロールしたときにスティッキーナビゲーションの色を変更するにはどうすればよいですか?

  25. 25

    scrollViewの制限を超えてスクロールしようとしたときにドラッグの方向を検出する

  26. 26

    JTextAreaに垂直スクロールバーを追加する

  27. 27

    スクロールバーを非表示にしながら、ビューポートを超える高さのdivをスクロールできるようにするにはどうすればよいですか?

  28. 28

    WPFで垂直スクロールバーを使用するときに有効になるDatepicker列

  29. 29

    特定のボタンがクリックされたときにデータテーブルの並べ替えを無効にする方法

ホットタグ

アーカイブ