支援ツール:JPanel の状態を確認する

ここで、興味深い実験をしてみます。先の例題に、次のコードの断片を追加して、

def ex_BorderLayout():
view = JPanel(
layout=BorderLayout(),
)
...
Inspector(view).show() # Here goes! (@.@)

再実行すると、次のようなインスペクターが現われます。


すると、このインスペクターを使って、先の例題で追加した JPanel インスタンスの状態を確認できます。1)リスト項目から components を選択すると、2) とあることから、それが Java の配列型だと分かります。この中には、先の例題で追加した5つの JButton インスタンスが含まれるはずです。実際に、3)右のテキスト領域には、次のような情報が表示されます。

array(java.awt.Component,[javax.swing.JButton[,75,29,90x70,alignmentX=0.0,alignmentY=0.5,
border=apple.laf.AquaButtonBorder@51da4,flags=16777512,maximumSize=,minimumSize=,preferredSize=,
defaultIcon=,...,text=CENTER,defaultCapable=true],...

この配列の中には、JButton インスタンスが含まれ、そのひとつに text=CENTER とあることから、それが中央に配置されたボタンだと分かります。

支援ツール:JPanel.layout の状態を確認する

さらに、インスペクターを使って、4)リスト項目の中から layout を選択すると、次のように、それが BorderLayout インスタンスだと分かります。ここで、5)ボタン 'inspect' を選択すると、新たなインスペクターが起動されます。


リスト項目にあるのは、java.awt.BorderLayout インスタンスのメンバー特性です。すると、6)静的フィールド BorderLayout.NORTH の存在を確認できます。

支援ツール:JPanel.locationOnScreen の変化を確認する

再び、興味深い実験をしてみます。


まず、7)リスト項目から locationOnScreen を選択しておきます。次に、元のウィンドウを移動した後で、再びその状態をインスペクターで観察します。再び、8)リスト項目から locationOnScreen を選択すると、スクリーン座標が (0,44) から (68,94) へと変化したのが分かります。つまり、インスタンスの実行時の状態変化を、インスペクターで確認できるのが分かります。
《Tips》インスペクターは、アプリケーションとは独立したツールです。しかし、各インスペクターの挙動は、特定のアプリケーションと密接に関連します。そのため、任意のアプリケーションと組み合わせて再利用できます。また、アプリケーション開発の支援ツールであると同時に、学習の支援ツールとしても重宝します。マニュアルを参照するまでもなく、目の前のインスタンスのメンバー特性を確認できるので便利です。


Previous|3/5|Next