不显示滚动条

时间:2019-03-01 11:20:26

标签: java scrollbar

垂直滚动条将不会显示。这是我的代码。 Java框架显示了textarea,但未显示textarea的滚动条。我是一名绿色程序员,所以我对自己的工作一无所知。

我应该怎么做才能显示滚动条? 请查看我的代码并找到我的错误。 我希望滚动条显示在JTextArea上

import javax.swing.*;//imported for the frame of the chatbot
import java.awt.*;
import java.awt.event.*;

public class Bot extends JFrame{
    private JTextArea Chatarea = new JTextArea(10,20);
    private JTextField Chatbox = new JTextField();
    private JScrollPane Scroll = new JScrollPane(Chatarea,JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);


    public Bot(){//frame for the chatbot
        JFrame frame = new JFrame();
        frame.setDefaultCloseOperation(EXIT_ON_CLOSE);
        frame.setVisible(true);
        frame.setResizable(false);
        frame.setLocationRelativeTo(null);
        frame.setLayout(null);
        frame.setSize(600 , 600);
        frame.setTitle("JAVADDY");
        frame.add(Chatarea);
        frame.add(Chatbox);// 


        //for chat area
        Chatarea.setSize(560, 400);
        Chatarea.setBackground(Color.YELLOW);
        Chatarea.setLocation(2, 50);
        Chatarea.setLineWrap(true);
        Chatarea.setEditable(false);//make jtextarea uneditable     
        //for chat box 
        Chatbox.setSize(540, 30);
        Chatbox.setLocation(2, 500);

        //for scrolling
        Scroll.setSize(1024,800);
        Scroll.setVisible(true);        

        Chatbox.addActionListener(new ActionListener(){
            //@Override
            public void actionPerformed(ActionEvent arg0){
                String gtext = Chatbox.getText();
                Chatarea.append("You -> "+ gtext+"\n");
                Chatbox.setText("");


                //place algorithm here
                if(gtext.contains("Hello")){
                    //find way to connect to database
                    bot("Hi");
                }
                else{
                    bot("I don't understand.");
                }
            }

        });         

    }// end of frame for the chatbot

    private void bot(String string){
            Chatarea.append("Bot ->" +string+"\n");
        }

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

2 个答案:

答案 0 :(得分:0)

问题

您是否使用了JScrollPane.setViewport(JScrollPane内部是什么)? 试试:Scroll.setViewport(Chatarea);

什么,为什么和如何

如果所有JScrollPane的内容都适合,则滚动条将被隐藏。当JScrollPane内部包含许多大元素时,将显示一个滚动条,以便在其中滚动。

尝试一下

在JScrollPane中添加许多按钮或标签以查看是否出现滚动条(如果没有显示),我们将找出原因

答案 1 :(得分:0)

尽管YoungDev提供了很好的建议,但问题实际上出在这里:

Chatarea.setSize(560, 400);

不要设置JTextArea的大小,因为这会限制JTextArea在需要时永远不会扩展。而是设置其列和行属性以约束 visible 列和行,但不限制其实际大小,从而允许其扩展。

也摆脱这个:

frame.setLayout(null);

当您忽略布局管理器而陷入困境时。