パターンを導入する前に

Observer パターンを導入する前に、例題の動作を確認します。


    def valueChanged(e):
panelView.background = eval(
"colors.%s"%e.source.selectedValue)

listData = [e for e in dir(colors) if not e.startswith("_")]
listView = JList(
listData=listData,
valueChanged=valueChanged,
)
panelView = JPanel(
preferredSize=(100, 100),
)
frame = JFrame(
defaultCloseOperation=JFrame.EXIT_ON_CLOSE,
title="Observer: @0",
bounds=(0, 0, 240, 112),
)
frame.add(JScrollPane(listView), BorderLayout.CENTER)
frame.add(panelView, BorderLayout.EAST)
frame.visible = True

例題を実行すると、ウィンドウが現われます。任意のリスト項目を選択すると、パネルの背景色が変化します。