ビューポートでコンポーネントが表示される位置を設定する

広告

ビューポート内でコンポーネントが表示される位置を設定する方法を確認します。

ビューポートの左上の位置にコンポーネントのどの座標(コンポーネントの左上を原点とした場合の座標)を設定します。設定するにはJViewportクラスで用意されている「setViewPosition」メソッドを使います。

ビューポートの左上隅に表示されるビューの座標を設定します。ビューがない
場合は何も行いません。

パラメータ:
  p - 左上の座標を示す Point オブジェクト

引数としてビューポートの左上に表示されるコンポーネントの座標を表すPointクラスのオブジェクトを設定します。Pointクラスについては『Pointクラス』を参照して下さい。

実際の使い方は次のようになります。

JScrollPane scrollpane = new JScrollPane();
JViewport view = scrollpane.getViewport();

ImageIcon icon = new ImageIcon("./img/hana.jpg");
JLabel label = new JLabel(icon);
view.setView(label);

view.setViewPosition(new Point(10, 10));

サンプルプログラム

では簡単なサンプルを作成して試してみます。

JScrollPaneTest10.java

import javax.swing.*;
import java.awt.Dimension;
import java.awt.BorderLayout;
import java.awt.Point;

public class JScrollPaneTest10 extends JFrame{

  public static void main(String[] args){
    JScrollPaneTest10 frame = new JScrollPaneTest10();

    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setBounds(10, 10, 300, 200);
    frame.setTitle("タイトル");
    frame.setVisible(true);
  }

  JScrollPaneTest10(){
    JScrollPane scrollpane = new JScrollPane();
    scrollpane.setPreferredSize(new Dimension(200, 120));

    JViewport view = scrollpane.getViewport();

    ImageIcon icon = new ImageIcon("./img/hana.jpg");
    JLabel label = new JLabel(icon);
    view.setView(label);

    view.setViewPosition(new Point(50, 50));

    JPanel panel = new JPanel();
    panel.add(scrollpane);

    getContentPane().add(panel, BorderLayout.CENTER);
  }
}

上記をコンパイルした後で実行すると次のように表示されます。

コンポーネントが表示されている位置を設定する

ビューポート内に表示されるコンポーネントの位置を変更しています。

( Written by Tatsuo Ikura )

関連記事 (一部広告含む)