没有在 JTextPane 中获得滚动条

Not getting scrollbars in JTextPane

我没有得到垂直滚动条。滚动 JTextPane。 我正在使用 JPanel 来显示 JScrollPane 内部的 JTextPane。 这是代码。请审查它。 谢谢。

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

class TestWithHtml
{
    JTextPane textpane;
    JPanel panel;
    JFrame frame;
    JScrollPane scrollpane;

    TestWithHtml()
    {
        frame = new JFrame("Text With HTML");
        frame.setSize(200,300);

        panel = new JPanel(new BorderLayout());
        panel.setBounds(0,0,200,300);

        textpane = new JTextPane();
        Dimension size = new Dimension(200,300);
        //frame.getContentPane()
        scrollpane = new JScrollPane(textpane);
        panel.add(scrollpane, BorderLayout.CENTER);
        textpane.setSize(size);
        scrollpanel.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);

        panel.add(textpane);
        frame.add(panel);
        textpane.setEditable(false);
        textpane.setContentType("text/html");
        textpane.setText("<b> hry </b>");
        textpane.setText("<p><b>Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. Here Is some text. </b></p>");

        frame.setVisible(true);
    }

    public static void main(String args[])
    {
        new TestWithHtml();
    }
}
scrollpane = new JScrollPane(textpane);
panel.add(scrollpane, BorderLayout.CENTER);
textpane.setSize(size);
scrollpane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
panel.add(textpane);
frame.add(panel);

您使用正确的文本窗格创建了滚动窗格。

但是随后您将文本窗格添加到面板。这是行不通的,因为组件只能有一个父组件,因此文本窗格会从滚动窗格中移除。

所以去掉面板,只将滚动窗格添加到框架中。

此外,不需要 setSize(...),因为滚动窗格的布局管理器将决定文本窗格的大小。

所以你的基本代码应该是:

scrollpane = new JScrollPane(textpane);
scrollpane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
frame.add(scrollpane);