【问题标题】:Why is my scrolling textarea in java not scrolling?为什么我在 java 中的滚动文本区域不滚动?
【发布时间】:2022-07-26 03:40:02
【问题描述】:

我有一个框架 f,面板 Fpanel。和textarea j。

这是我的代码的一部分。

滚动似乎不适用于我的文本区域。

                JTextArea j=new JTextArea();
                j.setBounds(60,150, 400,400); 
                j.setMargin(new Insets(3,3,3,3));
                j.setEditable ( false ); // set textArea non-editable
                
               JScrollPane scroll = new JScrollPane(j);
               scroll.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);  
               scroll.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);

我已经添加了

Fpanel.add(滚动);

f.add(Fpanel);

我的代码也是如此,但它似乎没有滚动。

我错过了一段代码还是我写错了什么?

  • 1) 仅当您添加文本且文本超出文本区域的首选大小时才会滚动。 2) 去掉 setBounds() 语句。您不应该使用空布局,因此不需要该语句。如果您仍有问题,请发布正确的minimal reproducible example
  • 请参阅How to Use Text Areas,这是 Oracle 的 Java 教程的一部分。
  • @camickr 我相信,让初学者不要使用空布局作为严格的坏事并不是一个好主意。只要窗口大小固定,它就可以正常工作。它还开发了一种“空间感”,这对于错过 vb6/forms applications/vba 不再流行的人来说是缺乏的。它不可扩展,但要简单得多。我们不知道他的表格是什么样子(设计一个等效的布局可能需要几个小时)。很多实验最好写成空布局,而不是根本不写。
  • @Dmitry 使用 null 布局总是完全错误的,与开发人员的知识水平无关 - 它永远无法正常工作,ui 中最轻微的变化都会破坏它。新手越早了解这一事实(以及使用布局管理器),越少错误的 sn-ps 越少越好。

标签: java swing jscrollpane jtextarea


【解决方案1】:

如果你想有一个垂直滚动条:

JPanel panel = new JPanel();
JScrollPane jsp = new JScrollPane(panel, ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS, ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);

如果你想有一个水平滚动条:

JPanel panel = new JPanel();
JScrollPane jsp = new JScrollPane(panel, ScrollPaneConstants.HORIZONTOL_SCROLLBAR_ALWAYS, ScrollPaneConstants.VERTICAL_SCROLLBAR_NEVER);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-22
    相关资源
    最近更新 更多