インターナルフレームがサイズ変更の可否を設定する

広告

インターナルフレームのサイズが変更を許可するかどうかを設定する方法を確認します。サイズ変更の可否を設定するにはコンストラクタで指定する方法とメソッドで指定する方法があります。まずはコンストラクタで設定する方法を確認します。

クローズ、最大化、アイコン化を行うことができない JInternalFrame を、タイ
トルと、サイズ変更可能性を指定して作成します。

パラメータ:
  title - タイトルバーに表示する String
  resizable - true の場合、内部フレームはサイズ変更できる

1番目の引数にインターナルフレームのタイトルに表示される文字列をString型の値で指定します。

2番目の引数にインターナルフレームのサイズを変更出来るかどうかを表すboolean型の値を設定します。「true」を設定した場合はサイズの変更が行えます。

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

JInternalFrame iframe = new JInternalFrame("title", true);

メソッドで指定する

作成されたJInternalFramクラスのオブジェクトに対してメソッドを使ってサイズ変更の可否を設定することも可能です。サイズ変更の可否を設定するにはJInternalFrameクラスで用意されている「setResizable」メソッドを使います。

ユーザーアクションによって JInternalFrame のサイズ変更ができるかどうかを
設定します。

パラメータ:
  b - boolean 値。true の場合は、この内部フレームをサイズ変更できる

引数にインターナルフレームのサイズを変更出来るかどうかを表すboolean型の値を設定します。「true」を設定した場合はサイズの変更が行えます。

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

JInternalFrame iframe = new JInternalFrame();
iframe.setResizable(true);

サンプルプログラム

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

JDesktopPaneTest6.java

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

public class JDesktopPaneTest6 extends JFrame{

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

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

  JDesktopPaneTest6(){
    JDesktopPane desktop = new JDesktopPane();

    JInternalFrame iframe1 = new JInternalFrame("IFrame1", true);
    iframe1.setSize(250, 120);
    iframe1.setLocation(10, 10);
    iframe1.setVisible(true);

    JInternalFrame iframe2 = new JInternalFrame("IFrame2");
    iframe2.setSize(250, 120);
    iframe2.setLocation(30, 30);
    iframe2.setResizable(false);
    iframe2.setVisible(true);

    desktop.add(iframe1);
    desktop.add(iframe2);

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

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

インターナルフレームのサイズ変更可否を設定する

1番目のフレームはサイズ変更が出来るように設定していますので、フレームの枠をマウスでドラックすることでサイズを変更できます。

インターナルフレームのサイズ変更可否を設定する

( Written by Tatsuo Ikura )

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