インスペクターを起動する

次のクラス InspectorPanel は、インスペクターの核となるパネルを規定します。

class InspectorPanel(JPanel):
def __init__(self, target):
self.target = target
self.layout = BorderLayout()
e = self.listView = JList(
listData=dir(target),
valueChanged=self.valueChanged,
)
self.add(JScrollPane(e), BorderLayout.WEST)
e = self.textView = JTextArea(
lineWrap=True,
)
self.add(JScrollPane(e), BorderLayout.CENTER)
e = self.helpView = JTextArea(
lineWrap=True,
)
self.add(JScrollPane(e), BorderLayout.SOUTH)

def valueChanged(self, e):
s = e.source.selectedValue
s = getattr(self.target, s)
self.textView.text = `s`
self.helpView.text = `type(s)`

def ex_Inspector():
target = JTextArea() # Here goes! (@.@)
frame = JFrame(
defaultCloseOperation=JFrame.EXIT_ON_CLOSE,
title="inspect: %s"%target.__class__.__name__,
)
frame.add(InspectorPanel(target))
frame.pack()
frame.show()

おもな変更点は、型情報を表示するテキスト領域 helpView を追加したことです。ウィンドウのタイトルを見ると、どのインスタンスを確認しているかが分かります。