java - JScrollPane 不显示在 JTextArea 上

标签 java swing jscrollpane jtextarea

我尝试实现的 JScrollPane 不起作用。我想将其添加到我的 JTextArea 中,但由于某种原因它不想显示

//JTEXTBOX
textArea = new JTextArea();
textArea.setEditable(false);

//JSCROLLPANE
JScrollPane scroll1 = new JScrollPane(textArea);
scroll1.setPreferredSize(new Dimension(200, 250));
scroll1.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
scroll1.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);

最佳答案

你的代码对我来说工作得很好。我猜测您正在将文本区域而不是滚动 Pane 添加到组件层次结构中。确保您调用的是 parent.add(scrollpane) 而不是 parent.add(textarea)

请参阅此示例:

import java.awt.Dimension;
import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.ScrollPaneConstants;

public class TestTextArea {
    private JTextArea textArea;

    public TestTextArea() {
    }

    private void initUI() {
        JFrame frame = new JFrame();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        // JTEXTBOX
        textArea = new JTextArea(10, 25);
        textArea.setEditable(false);
        textArea.setText("Here is my textarea\nI can finally see it.\nYeah!!! :-)");

        // JSCROLLPANE
        JScrollPane scroll1 = new JScrollPane(textArea);
        scroll1.setPreferredSize(new Dimension(200, 250));
        scroll1.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
        scroll1.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
        frame.add(scroll1);
        frame.pack();
        frame.setVisible(true);
    }

    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            @Override
            public void run() {
                try {
                    TestTextArea test = new TestTextArea();
                    test.initUI();
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }

}

注意:忘记使用 setPreferredSize 并尝试通过在其构造函数中提供行和列来提示 JTextArea 您的首选大小。

关于java - JScrollPane 不显示在 JTextArea 上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28885387/

相关文章:

java - JLabel 文本未出现

java - 组件以不寻常的方式呈现

java - 我们如何才能知道与 documentEvent 中的文档关联的 JeditorPane

java - JScrollPane 用于包含一组带有 BoxLayout 的标签的面板

java - 如何仅用4位存储0-9范围内的整数并与HashMap中的Key相同?

java - 如何在 GUI 中编写 Eclipse BUILT

Java printDailyCost 方法

可滚动表的 Java Swing 布局?

java - 如何隐藏 JScrollBar 中的箭头按钮

java - 如何在lucene搜索中突出显示文本