所以,我有一个程序可以打开一个文档并显示它。但是,文档对于显示区域来说通常很大,所以我添加了一个 JScrollPane。由于我将元素添加到显示的方式,加载后我总是在文档末尾结束。我无法更改加载文档的方式,但我想更改 JScrollPane 在加载后的行为方式。
如何强制它卡到顶部?我尝试使用 scrollRectToVisible 作为顶级组件,但没有奏效。
有没有一种方法可以让它将它的位置设置为顶部(它只是一个垂直的 JScrollpane)?
编辑:我搞砸了,它是 JScrollPane,而不是 JScrollBar。
编辑2:
我决定这样做:
myScrollPane.getVerticalScrollBar().setValue(0);
在 JFileChooser 构造函数中:
...
if (returnVal == JFileChooser.APPROVE_OPTION)
{
...
Main.myScrollPane.getVerticalScrollBar().setValue(0);
}
那是行不通的。如果我将它移动到我的 JMenu 对象并添加一个标志,它看起来像这样:
在 JFileChooser 构造函数中:
...
if (returnVal == JFileChooser.APPROVE_OPTION)
{
...
Main.flag = true;
}
在 JMenu 构造函数中:
...
someJMenuItem.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
new MyJFileChooser();
if (Main.flag)
{
Main.myScrollPane.getVerticalScrollBar().setValue(0);
Main.flag = false;
}
}
}
这也不起作用,但我知道 if 命令中的代码正在执行。
如果我附加 Main.myScrollPane.getVerticalScrollBar().setValue(0); 到 JMenu 中的一个按钮,它将完美地工作。
那么,怎么了?