そのため、ドキュメントを開いて表示するプログラムがあります。ただし、ドキュメントは表示領域に対して大きすぎることが多いため、JScrollPane を追加しました。要素を表示に追加する方法が原因で、ドキュメントを読み込んだ後、常にドキュメントの最後になります。ドキュメントのロード方法を変更することはできませんが、ロード後の JScrollPane の動作を変更したいと考えています。
強制的に上にスナップするにはどうすればよいですか? 一番上のコンポーネントに scrollRectToVisible を試してみましたが、うまくいきませんでした。
位置を上に設定するために使用できる方法はありますか (これは垂直 JScrollpane のみです)。
編集:私はめちゃくちゃです、それはJScrollBarではなくJScrollPaneです。
編集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 のボタンに変更すると、問題なく動作します。
それで、何が問題なのですか?