【问题标题】:How to make JTextArea scrollable to user input?如何使 JTextArea 可滚动到用户输入?
【发布时间】:2017-03-14 12:22:44
【问题描述】:

几天以来我一直在开发一个 java 应用程序(我是新手)。我必须使用JTextArea 进行用户输入(250 个字符)。我使用setPreferredSize() 方法来调整我的JTextArea。但是,当用户键入时,当插入的单词超过JTextArea 高度时,尽管用户键入,我看不到输入的其余部分。

有没有办法解决这个问题?

【问题讨论】:

  • 1.不要使用 setPreferredSize,使用 setRowssetColumns 方法。 2. 确保将 JTextArea 放在 JScrollPane 中,并将 JScrollPane 而不是 JTextArea 添加到面板或窗口中。

标签: java jtextarea scrollable


【解决方案1】:

请发布一些代码,以便我们可以看到您已经做了什么。 您可以尝试添加JScrollPane:

JFrame frame = new JFrame ("Frame");
JTextArea textArea = new JTextArea ("Textarea");

JScrollPane scroll = new JScrollPane (textArea, 
   JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);

frame.add(scroll);//add Scrollbar to frame

【讨论】:

    【解决方案2】:

    请关注this link

    import javax.swing.*;
    public class ScrollingTextArea 
    {
      JFrame f;
      JTextArea ta;
      JScrollPane scrolltxt;
      public ScrollingTextArea() 
        {
             // TODO Auto-generated constructor stub
    
              f=new JFrame();
              f.setLayout(null);
              f.setVisible(true);
              f.setSize(500,500);
              ta=new JTextArea();
              ta.setBounds(5,5,100,200);
    
              scrolltxt=new JScrollPane(ta);
              scrolltxt.setBounds(3,3,400,400);
    
              f.add(scrolltxt);
    
        }
    
         public static void main(String[] args) 
        {
            new ScrollingTextArea();
        }
    

    }

    【讨论】:

    • (1-) 不要使用空布局。 Swing 旨在与布局管理器一起使用。当文本区域的首选大小大于滚动窗格的大小时,滚动条将自动出现。 ta.setBounds(...) 什么都不做。滚动窗格的布局管理器将确定文本区域的大小。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-07
    相关资源
    最近更新 更多