0

JPanel と JScrollPane を次のように作成しました。

JPanel panel = new JPanel();
panel.setPreferredSize(5000, 5000);
JScrollPane scrollPane = new JScrollPane(panel, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
scrollPanel.getViewport().setBackground(Color.GRAY); //panel is white

イベント ハンドラーを使用して、パネルのサイズを動的に変更します。問題は、パネルがビューポートよりも小さい場合があることです。パネルのサイズを次のように設定します。

panel.setPreferredSize(10, 10); //Just an example

ただし、パネルがビューポートよりも小さくなることはありません。使ってみた

panel.setSize(10, 10);

そして、灰色のちらつき(ビューポートの背景が透けて見える)が見えました。これは、パネルが希望するサイズにサイズ変更されていることを示していましたが、その後、ビューポートのサイズに拡大しました。どうすればこれを止めることができますか?

4

1 に答える 1

3

JViewport 内のビューのサイズを制御するには、Scrollableインターフェースを実装させます。そうしないと、常にビューポートのサイズに強制されます。

于 2012-07-09T08:53:33.713 に答える