// Copyright (C) 2000 by Toyohisa Nakada. All Rights Reserved. import java.awt.*; import java.awt.event.*; import java.applet.*; import java.net.*; import java.awt.image.*; import javax.swing.*; /** * ボイドアプリケーションクラス * @author 中田豊久 */ public class ComplexFrame extends JFrame { /** アクションリスナー */ ActionListener actionListener = new ActionListener(){ /** * [ap]ボタンを押した時の処理。パラメータを新しくセットして、スレッ * ドを再起動する。 * @param e ActionEvent */ public void actionPerformed(ActionEvent e) { Object src = e.getSource(); if(src == m_bApply){ if(true == ComplexPanel.m_Parameters.setParameter()){ m_panel.stop(); m_panel.start(); } }else if(src == m_bHelp){ m_panel.help(); m_panel.repaint(); } } }; /** * Complexパネル変数。 * Appletに2つのパネルを配置する。1つはComplexパネルでComplexシステ * ム自体になり、もう1つはcontrolPanelでComplexシステムを管理するた * めに使用する。 */ ComplexPanel m_panel; /** * コントロールパネル変数。 * Appletに2つのパネルを配置する。1つはComplexパネルでComplexシステ * ム自体になり、もう1つはcontrolPanelでComplexシステムを管理するた * めに使用する。 */ JPanel m_controlPanel=null; /** * [apply]ボタン。このボタンを押すと、パラメータが新しくセットされ * スレッドの再起動が起こり、画面が初期化される。 */ Button m_bApply = new Button("apply"); /** * [help]ボタン。このボタンを押すと、使い方の説明の画面が表示する。 */ Button m_bHelp = new Button("help"); ComplexFrame(){ super(); addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e){ System.exit(0); }}); getContentPane().setLayout(new BorderLayout()); m_panel = new ComplexPanel(); getContentPane().add(m_panel,BorderLayout.CENTER); m_controlPanel = new JPanel(); m_controlPanel.add(m_bHelp); m_bHelp.addActionListener(actionListener); m_controlPanel.add(m_bApply); m_bApply.addActionListener(actionListener); ComplexPanel.m_Parameters.init(m_controlPanel); getContentPane().add(m_controlPanel,BorderLayout.SOUTH); m_panel.init(); } public void addNotify(){ super.addNotify(); show(); m_panel.start(); } public static void main(String args[]) { ComplexFrame me = new ComplexFrame(); me.setSize(600,480); me.setVisible(true); } }