java - 滚动条未显示在 JTextArea 中 - Swing GUI

标签 java swing jscrollpane layout-manager jtextarea

滚动条不显示。我已经尝试过人们在之前的问题(例如本问题)中回复的大部分代码。

    frame = new JFrame();
    frame.setBounds(100, 100, 450, 300);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);    
    textArea_2 = new JTextArea();
    textArea_2.setRows(200);
    textArea_2.setBounds(0, 22, 434, 120);
    textArea_2.setEditable(false);
    JScrollPane scrollv2 = new JScrollPane (textArea_2);
    frame.add(scrollv2);
    frame.getContentPane().add(textArea_2);
    scrollv2.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
    frame.setVisible (true);

最佳答案

您正在将 JTextArea 添加到内容 Pane ,实际上您应该将 JScrollPane 添加到 JFrame 的内容 Pane 。您应该将 JTextArea 添加到 JScrollPane 的内容 Pane 中。下面是可见滚动条实际运行的示例:

Vertical scroll bar on a JScrollPane

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

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;

public class SimpleScrollBars extends JFrame {
    private static final long serialVersionUID = 1L;
    private JPanel contentPane;

    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    SimpleScrollBars frame = new SimpleScrollBars();
                    frame.setVisible(true);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }

    public SimpleScrollBars() {
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        contentPane = new JPanel();
        contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
        contentPane.setLayout(new BorderLayout(0, 0));
        setContentPane(contentPane);

        JScrollPane scrollPane = new JScrollPane();
        scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
        contentPane.add(scrollPane, BorderLayout.CENTER);

        JTextArea textArea = new JTextArea(5, 15);
        scrollPane.setViewportView(textArea);

        pack();
    }

}

关于java - 滚动条未显示在 JTextArea 中 - Swing GUI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24024340/

相关文章:

java - JScrollPane 修改内容

java - 如何在 JScrollPane 标题中禁用鼠标滚轮滚动?

java - 带有包装 HTML 文本的 JLabel 作为 JScrollPane 客户端

java - 持久化()之后的JPA提交(): Required or Not

java - 从 onPostExecute 内部 AsyncTask 获取结果到 OnCreate

java - 数组列表 : coords never found in list

java - 调用扫描器后方法不会更新 GUI

java - java.util.LinkedList 可以有一个循环吗?

java - VSCode : disable Java linting

java - 检测 JFileChooser 何时关闭