我将 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);
}
我想问一下为什么会这样,我该如何纠正?
非常感谢。