【问题标题】:Setting fixed width of JTextArea while height should be automatically adjusted to its content设置 JTextArea 的固定宽度,而高度应自动调整为其内容
【发布时间】:2012-06-16 15:28:37
【问题描述】:

当我运行示例代码时,JTextArea 的宽度是固定的(100 像素),而当我在其中键入一些文本时,它的高度会动态调整。

例如,我从这个开始:

--------------------
| some text        |
--------------------

当我输入更多文本时,JTextArea 的高度会扩大,使其适合内容,同时保留宽度:

--------------------
| some text, some  |
| other longer text|
| etc...           |
--------------------

如何将 JTextArea 的宽度加倍? 当我通过更改 preferredSize 来做到这一点时,高度不再是动态的。

public class TestTextArea extends JFrame {

    public static void main(String[] args) {
        new TestTextArea().setVisible(true);
    }

    public TestTextArea() {
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setBounds(0,0,800,600);
        setContentPane(createPane());
    }

    protected Container createPane() {
        JTextArea textArea = createTextArea();

        // ------------------------------------------
        // UNCOMMENT TO DOUBLE THE WIDTH OF JTextArea

//        Dimension oldPrefSize = textArea.getPreferredSize();
//        Dimension newPrefSize = new Dimension(oldPrefSize.width * 2, oldPrefSize.height);
//        textArea.setPreferredSize(newPrefSize);

        JPanel pane = new JPanel(new FlowLayout());
        pane.add(textArea);
        return pane;
    }

    protected JTextArea createTextArea() {
        JTextArea textArea = new JTextArea();
        textArea.setWrapStyleWord(true);
        textArea.setLineWrap(true);
        return textArea;
    }

}

【问题讨论】:

    标签: java swing jtextarea


    【解决方案1】:

    使用JTextArea#setColumns方法调整宽度

    【讨论】:

    • 有没有办法以像素为单位指定宽度?
    • 哦,我现在明白了,JTextArea.getColumnWidth() 解释了我之前的评论。
    【解决方案2】:

    将换行设置为 true => textArea.setLineWrap(true); 这将使最大线宽 = textarea 与

    【讨论】:

      【解决方案3】:

      更改这行代码 textArea.setPreferredSize(newPrefSize);到 textArea.setSize(newPrefSize); 高度将动态调整。

      【讨论】:

        猜你喜欢
        • 2015-04-07
        • 1970-01-01
        • 2016-06-13
        • 2012-08-21
        • 2015-07-24
        • 1970-01-01
        • 2013-06-23
        • 2015-07-13
        • 2013-01-15
        相关资源
        最近更新 更多