繁体   English   中英

阻止JTextArea扩展

[英]Stop JTextArea from expanding

我正在尝试从数据文件中读取信息并将其处理到JTextArea ,以获取我正在制作的术语项目的about文件。 问题是,当我执行scanner.nextLine()它正在扩展文本区域以适应文本,我想要的是保持文本区域的大小相同,如果它在当前行上的空间不足则启动在...上

    if(event.getSource() == forward)
    {
        text.setText(s.nextLine());
    }

文本区域设置如下:

     text = new JTextArea(11, 30); 

基本上我想知道的是,如果有一个文本区域提供的方法(我看),如果当前已满,则将空间重定位到下一行。 如果在文本区域中没有办法,我很可能只编辑数据文件。

JTextArea放在JScrollPane然后将滚动窗格添加到容器中

text = new JTextArea(11, 30);
JScrollPane scrollpane = new JScrollPane(text);
//...
add(scrollpane);

有关更多详细信息,请参见如何使用滚动窗格

这将阻止滚动窗格在当前容器中增长。

另请查看JTextArea#setLineWrapJTextArea#setWrapStyleWord ,它将影响组件如何处理超出可查看宽度的文本。

有关详细信息,请参见如何使用文本区域

您可以使用JTextArea #setLineWrap(true)默认设置为false。

设置文本区域的换行策略。 如果设置为true,则如果行太长而无法放入分配的宽度内,则会对其进行换行。 如果设置为false,则将始终打开行。 更改策略时会触发PropertyChange事件(“lineWrap”)。 默认情况下,此属性为false。

另请参见此方法JTextArea#setWrapStyleWord(true)

SSCCE示例:

   public class JTextAreaTest {

    public static void main(String args[]){

        JFrame frame = new JFrame();
        JPanel panel = new JPanel();
        frame.add(panel);
        JTextArea textArea = new JTextArea(11,30);
        textArea.setLineWrap(true);
        textArea.setWrapStyleWord(true);
        textArea.setText("Hi how are you? Im testing this textarea and im seeing if it's wrapping words");
        textArea.append("SASASASASDASDASDASDASDASDADSASDASDASDASDAS");
        JScrollPane scrollPane = new JScrollPane(textArea);
        panel.add(scrollPane);

        frame.pack();
        frame.setVisible(true);
    }

}

textArea示例

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM