首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ScrollPane不工作

ScrollPane不工作
EN

Stack Overflow用户
提问于 2010-12-22 22:40:54
回答 1查看 800关注 0票数 1

我在使用ScrollPane和TextArea时遇到了问题,我在那里放了一个滚动条,当我尝试在TextArea中输入时,它没有滚动,而是变宽了。下面是它的代码:

代码语言:javascript
复制
package interface_Components;

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.GridLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;

public class chatComponent extends JFrame {

    private JTextField chatInput;
    private JTextArea chatOutput;
    private JScrollPane chatScroll;
    private JButton sendButton;
    private JButton newRoomButton;
    private JButton joinRoomButton;
    private JButton inviteButton;
    private JList roomsList;
    private JList usersList;

    public chatComponent() {
        JFrame loggedInWindow = new JFrame("Yikes!");
        chatInput = new JTextField("Type here");
        chatOutput = new JTextArea("Type here and press enter many times scroll doesnt work I dont know why");
        chatScroll = new JScrollPane(chatOutput);
        sendButton = new JButton("Send");
        newRoomButton = new JButton("New Room");
        joinRoomButton = new JButton("Join Room");
        inviteButton = new JButton("Invite");
        roomsList = new JList();
        usersList = new JList();

        chatInput.selectAll();
        chatScroll.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
        chatScroll.setAutoscrolls(true);

        chatOutput.setRows(6);
        chatOutput.setLineWrap(true);
        chatOutput.setAutoscrolls(true);

        loggedInWindow.setLayout(new BorderLayout(5, 5));

        JPanel centerPanel = new JPanel(new BorderLayout(5, 5));
        JPanel eastPanel = new JPanel(new BorderLayout(5, 5));

        JPanel centerInternal_1 = new JPanel(new BorderLayout(5, 5));
        JPanel centerInternal_2 = new JPanel(new BorderLayout(5, 5));
        JPanel centerInternal_3 = new JPanel(new BorderLayout(5, 5));

        JPanel eastInternal_1 = new JPanel(new BorderLayout(5, 5));
        JPanel eastInternal_2 = new JPanel(new GridLayout(3, 0, 5, 5));

        centerInternal_3.add(chatInput, BorderLayout.CENTER);
        centerInternal_3.add(sendButton, BorderLayout.EAST);

        centerInternal_2.add(chatOutput, BorderLayout.CENTER);
        centerInternal_2.add(chatScroll, BorderLayout.EAST);
        centerInternal_2.add(centerInternal_3, BorderLayout.SOUTH);

        centerInternal_1.add(centerInternal_2, BorderLayout.SOUTH);
        centerInternal_1.add(roomsList, BorderLayout.CENTER);

        centerPanel.add(centerInternal_1, BorderLayout.CENTER);

        eastInternal_1.add(usersList, BorderLayout.CENTER);

        eastInternal_2.add(newRoomButton);
        eastInternal_2.add(joinRoomButton);
        eastInternal_2.add(inviteButton);

        eastPanel.add(eastInternal_1, BorderLayout.CENTER);
        eastPanel.add(eastInternal_2, BorderLayout.SOUTH);

        loggedInWindow.add(eastPanel, BorderLayout.EAST);
        loggedInWindow.add(centerPanel, BorderLayout.CENTER);

        loggedInWindow.setVisible(true);
        loggedInWindow.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        loggedInWindow.setSize(800, 600);
    }

    public static void main(String[] args) {
        chatComponent cc = new chatComponent();
    }
}
EN

回答 1

Stack Overflow用户

发布于 2010-12-22 22:55:47

问题是您正在将chatOutput添加到面板的中心,并将chatScroll添加到东部。我不认为这是你想要的。

您需要向中心添加chatScroll,如下所示:

代码语言:javascript
复制
//centerInternal_2.add(chatOutput, BorderLayout.CENTER); //don't add chatOutput
centerInternal_2.add(chatScroll, BorderLayout.CENTER);
centerInternal_2.add(centerInternal_3, BorderLayout.SOUTH);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4510285

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档