Java Swing JTextArea 滚动条未显示在内部

标签 java swing awt jtextarea

我正在尝试在 JTextArea 中添加滚动条,但滚动条未显示在文本区域中..

这是我的代码,

import java.awt.Color;
import java.awt.Dimension;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;

public class Test {

    public static void main(String[] args) {
        JFrame frame = new JFrame("MySql Console");
        frame.setSize(400, 300);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        JPanel panel = new JPanel();
        frame.add(panel);
        panel.setLayout(null);

        JTextArea txtQuery = new JTextArea ();
        txtQuery.setBounds(10, 10, 365, 45);        
        JScrollPane scroll = new JScrollPane (txtQuery, 
           JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
        //scroll.setPreferredSize(new Dimension(100, 50));
        panel.add(scroll);
        panel.add(txtQuery);

        frame.setVisible(true);
    }

}

尝试了互联网上的一些替代方案,但仍然不起作用。

最佳答案

   panel.setLayout(null);

    JTextArea txtQuery = new JTextArea ();
    txtQuery.setBounds(10, 10, 365, 45);        
    JScrollPane scroll = new JScrollPane (txtQuery, 
       JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
    //scroll.setPreferredSize(new Dimension(100, 50));
    panel.add(scroll);
    panel.add(txtQuery);
  1. 不要使用空布局。布局管理器将确定组件的首选大小,然后滚动 Pane 可以确定何时需要滚动条。当您向文本区域添加文本时,滚动条将自动出现。

  2. 不要将文本区域添加到面板中。一个组件只能有一个父组件。您已经将文本区域添加到滚动 Pane 中。

  3. 通过指定文本区域的行/列为文本区域指定首选大小。

所以你修改后的代码应该是这样的:

   //panel.setLayout(null);

    JTextArea txtQuery = new JTextArea (5, 20);
    //txtQuery.setBounds(10, 10, 365, 45);        
    JScrollPane scroll = new JScrollPane (txtQuery);
    //scroll.setPreferredSize(new Dimension(100, 50));
    panel.add(scroll);
    //panel.add(txtQuery);

关于Java Swing JTextArea 滚动条未显示在内部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36491640/

相关文章:

Java Swing JTextArea 插入符拒绝移动到左上角

java - 如何关闭带有线程的java框架

java - 使用 WSDL 和 codehaus jaxb2 的 Spring Soap Web 服务客户端;需要 XmlRootElement 吗?

java - 使用集合框架删除重复值

java - 在按键时显示图像并将其保留在屏幕上直到线程停止

java - 在 JTextArea 中突出显示和更改文本颜色

java - 如何以通用方式将鼠标事件传播到父容器

java - GUI 应用程序中的变量未更新

java - java.awt.Window 的全屏问题

java - 如何以编程方式从另一个 Android 应用程序访问/检测特定的 Activity 变量?