我有一个“帮助”按钮,当单击它时,会打开一个JFrame窗口,并显示从文件中读取的多行文本。处理完整个帮助文件后,窗口中只显示文件的中间部分。滚动条位于其范围的中间。这是一个模拟窗口,模拟显示所有80行的第33行到第52行:
我希望第一行在处理完最后一行后可见,而无需用户向上滚动。 怎么样?我查看了名为Helpframe的JFrame的方法和属性,但似乎都没有适用。
以下是涉及的3个类的相关代码:
public class Help extends JFrame{
static String [] lines = null;
public Help() {
lines = new String[]{
" ... blah blah blah blah ... ", ... } // 100 more strings follow
} // end of class Help
public class UserIO extends JFrame {
private void btnHelpMouseClicked(java.awt.event.MouseEvent evt) {
HelpOutput helpFrame = new HelpOutput();
Help help = new Help();
for (String line : Help.lines)
helpFrame.appendOutput(" " + line);
编辑和解决方案
HelpOutput.txaOutput.setCaretPosition(0);
在for
之后添加了该行;问题解决了。
} ...
} // end of class UserIO
public class HelpOutput extends JFrame {
JScrollPane jScrollPane1 = new JScrollPane();
JTextArea txaOutput = new JTextArea();
jScrollPane1.setViewportView(txaOutput);
...
public void appendOutput(String s){
txaOutput.append(s + "\n");
} ...
} // end of class HelpOutput
我在另一个程序中解决了类似的问题,在这种情况下使用....selectAll()
将“读者的光标”定位在窗口的底部,这是理想的,因为底线是摘要。但即使这种方法可用,我也不想用当前的程序来做到这一点。
答案 0 :(得分:0)
HelpOutput.txaOutput.setCaretPosition(0);
在for
和问题解决后添加了。