Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Java中的JTextArea类中添加滚动条?_Java_Swing_Scrollbar_Jtextarea - Fatal编程技术网

如何在Java中的JTextArea类中添加滚动条?

如何在Java中的JTextArea类中添加滚动条?,java,swing,scrollbar,jtextarea,Java,Swing,Scrollbar,Jtextarea,首先,我知道如何在JTextArea中添加滚动条 JTextArea textarea = new JTextArea(); JScrollPane scrollbar = new JScrollPane(textarea); 但在下面的JTextArea类代码中 public class MyTextArea extends JTextArea { public MyTextArea() { setEditable(true); setS

首先,我知道如何在JTextArea中添加滚动条

JTextArea textarea = new JTextArea();
JScrollPane scrollbar = new JScrollPane(textarea);
但在下面的JTextArea类代码中

public class MyTextArea extends JTextArea
{   
    public MyTextArea()
    {
        setEditable(true);
        setSize(500, 500);

        //JScrollPane scroll = new JScrollPane(this);
        // ...
    }

}
如何添加滚动条?我尝试使用JScrollPane,但没有成功。我尝试了一种新方法,但也没用

这是我的JFrame课程

public class MyFrame extends JFrame
{    
    MyFrame()
    {
        setLayout(null);
        setTitle("Frame Title");
        setSize(600, 600);  

        MyTextArea mytextarea = new MyTextArea();
        add(mytextarea);

        setVisible(true);
        setDefaultCloseOperation(MyFrame.EXIT_ON_CLOSE);
    }
}
还有我的主菜

public static void main(String[] args) 
{
    new MyFrame();
}

在您发布的示例中,您没有在JTextArea中添加滚动条,而是将JTextArea添加到JScrollPanel中

此外,如果您没有实际扩展一个类,则最好创建该类的实例并修改它们,但如果您打算这样做,则可以执行以下操作:

public class MyTextArea extends JScrollPanel{   

    public JTextArea ta = new JTextArea();

    public MyTextArea(){
        ta.setEditable(true);
        ta.setSize(500, 500);
        setViewPortView(ta);
    }
}

在您发布的示例中,您没有在JTextArea中添加滚动条,而是将JTextArea添加到JScrollPanel中

此外,如果您没有实际扩展一个类,则最好创建该类的实例并修改它们,但如果您打算这样做,则可以执行以下操作:

public class MyTextArea extends JScrollPanel{   

    public JTextArea ta = new JTextArea();

    public MyTextArea(){
        ta.setEditable(true);
        ta.setSize(500, 500);
        setViewPortView(ta);
    }
}
只需将JTextArea包装在JScrollPane中

当组件的内容大于滚动窗格的可视区域时,将显示滚动条

你真正需要问的问题是,你为什么要扩展这个领域?只需将JTextArea包装在JScrollPane中,即可查看更多详细信息

当组件的内容大于滚动窗格的可视区域时,将显示滚动条


你真正需要问的问题是,你为什么要扩展这个领域?查看更多详细信息

默认情况下,只有当组件的大小超过滚动窗格可查看区域的大小时,才会显示滚动条。默认情况下,只有当组件的大小超过滚动窗格可查看区域的大小时,才会显示滚动条。setViewportView将整个框架设置为文本区域。@LordRixuel即可能是由于您将此组件添加到的布局造成的。setViewportView使整个框架成为文本区域。@LordRixuel这可能是由于您将此组件添加到的布局造成的。