jscrollpane没有出现

idfiyjo8  于 2021-06-29  发布在  Java
关注(0)|答案(1)|浏览(358)

我编写了一个程序,我想向jtextarea添加一个jscrollpane(但它没有显示)。下面是代码(或者至少是必须处理jtextarea/jscrollpane的所有内容,整个代码非常多):

static JPanel contentPane; // This one got initialised in the constructor
    static JTextArea tarMessages;

    public void addTextArea{
        tarMessages = new JTextArea();
        tarMessages.setForeground(Color.WHITE);
        tarMessages.setBackground(new Color(0, 0, 0, 0));
        tarMessages.setEditable(false);
        tarMessages.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
        tarMessages.setBounds(600, 124, 200, 192);
        tarMessages.setOpaque(false);
        /*DefaultCaret dlcMessages = (DefaultCaret)tarMessages.getCaret();
        dlcMessages.setUpdatePolicy(DefaultCaret.ALWAYS_UPDATE);*/
        tarMessages.addMouseListener(new MouseAdapter(){
            @Override
            public void mouseClicked(MouseEvent e) {
                requestFocus();
            }
        });
        JScrollPane scpMessages = new JScrollPane(tarMessages);
        scpMessages.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS);
        scpMessages.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
        scpMessages.setPreferredSize(new Dimension(10, 192));
        scpMessages.setEnabled(true);
        contentPane.add(scpMessages);
        contentPane.add(tarMessages);
    }

谢谢你的帮助。祝你假期愉快。

bogh5gae

bogh5gae1#

JScrollPane scpMessages = new JScrollPane(tarMessages);
    ...
    contentPane.add(scpMessages);
    contentPane.add(tarMessages);

swing组件只能有一个父级。
首先将文本区域添加到滚动窗格中,这是正确的。
但是,当您将它添加到内容窗格时,会将其从滚动窗格中删除。
摆脱:

///contentPane.add(tarMessages);

此外,在创建文本区域时,请使用如下代码:

tarMessages = new JTextArea(5, 20);

这将指定文本区域的行/列,以便它可以适当地调整自身大小。
不要使用设置边界(…)

相关问题