Java 垂直滚动条和视口定位

Java 垂直滚动条和视口定位,java,jscrollpane,Java,Jscrollpane,我将JTextPane与JScrollPane结合使用。JTextPane预先填充了大量需要滚动阅读的文本。我遇到的问题是,默认情况下,视图端口显示的是文本最底部的部分,即当JFrame打开或刷新时,垂直滚动条旋钮位于底部(而不是顶部)。以前使用JScrollPane时,我没有遇到过这个问题 这是我用来创建滚动窗格的代码:- JTabbedPane jtpCentre = new JTabbedPane(); JPanel panHexagramText = new JPane

我将JTextPane与JScrollPane结合使用。JTextPane预先填充了大量需要滚动阅读的文本。我遇到的问题是,默认情况下,视图端口显示的是文本最底部的部分,即当JFrame打开或刷新时,垂直滚动条旋钮位于底部(而不是顶部)。以前使用JScrollPane时,我没有遇到过这个问题

这是我用来创建滚动窗格的代码:-

    JTabbedPane jtpCentre = new JTabbedPane();

    JPanel panHexagramText = new JPanel();
    panHexagramText.setBorder(bor);
    txpHexagramText = new JTextPane();
    txpHexagramText.setPreferredSize(new Dimension(595, 300));
    scrHTPanel = new JScrollPane(txpHexagramText,
            JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
            JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);      
    scrHTPanel.setPreferredSize(new Dimension(595,300));

    panHexagramText.add(scrHTPanel);
我用于填充文本窗格的代码位于不同的类中:

     try {
        String strLineText = this.createLineTextString(strLineTextData);
        String[] strFullText = {"Hexagram Text\n\n",
            strTranslationData[0][1],
            "\n\nLine Text",
            strLineText};
        String[] strStyles = {"bold", "regular", "bold", "regular"};
        gui.txpHexagramText.setText(null);
        StyledDocument sDoc = gui.txpHexagramText.getStyledDocument();
        this.addStylesToDoc(sDoc);
        for (int i = 0; i < strFullText.length; i++) {
            sDoc.insertString(sDoc.getLength(), strFullText[i],
                    sDoc.getStyle(strStyles[i]));
        }
    } catch (Exception ex) {// Trap error if there is no translation available.
        gui.txpHexagramText.setText(str);
    }
试试看{
String strLineText=this.createLineTextString(strLineTextData);
字符串[]strFullText={“Hexagram Text\n\n”,
标准翻译数据[0][1],
“\n\n行文本”,
strlnetext};
字符串[]strStyles={“粗体”、“常规”、“粗体”、“常规”};
gui.txpHexagramText.setText(null);
StyledDocument sDoc=gui.txpHexagramText.getStyledDocument();
这是addStylesToDoc(sDoc);
for(int i=0;i
我想问一下,它为什么这样做,我怎样才能纠正它

非常感谢