import java.util.*; import java.awt.*; import java.applet.*; public class ControlWindow extends Frame implements Runnable { Choice _distribution; Slider _sliderMaxE, _sliderMaxR, _sliderMinR, _sliderRCTime, _sliderMaxA, _sliderMinA, _sliderCF, _sliderTemp, _sliderJump, _sliderDel, _sliderTaboo; static final int DefaultMaxE=1000; static final int DefaultMaxR=5; static final int DefaultMinR=1; static final int DefaultRCTime=100; static final int DefaultMaxA=90; static final int DefaultMinA=0; static final int DefaultCF=20; static final int DefaultTemp=3; static final int DefaultJump=100; static final int DefaultDelay=100; static final int DefaultTaboo=30; protected boolean _showing = false; public boolean showing() { return _showing; } public void showing( boolean s ) { _showing = s; } public ControlWindow( ) { setLayout(new GridLayout( 0, 2, 4, 4 )); add( new Label("Distribution:", Label.RIGHT)); _distribution = new Choice(); _distribution.addItem("Rectangular"); _distribution.addItem("Triangular"); _distribution.addItem("Circular"); _distribution.select(0); add(_distribution); _sliderMaxE = new Slider( ); add( new Label("Max. Epochs:", Label.RIGHT) ); _sliderMaxE.SetMinimum(1); _sliderMaxE.SetMaximum(10000); _sliderMaxE.SetValue(DefaultMaxE); _sliderMaxE.SetWidth(200); add( _sliderMaxE ); _sliderMaxR = new Slider(); _sliderMaxR.SetMinimum(0); _sliderMaxR.SetMaximum(100); _sliderMaxR.SetValue(DefaultMaxR); _sliderMaxR.SetWidth(200); add( new Label("Max. Radius:", Label.RIGHT) ); add( _sliderMaxR ); _sliderMinR = new Slider( ); _sliderMinR.SetMinimum(0); _sliderMinR.SetMaximum(20); _sliderMinR.SetValue(DefaultMinR); _sliderMaxR.SetWidth(200); add( new Label("Min. Radius:", Label.RIGHT) ); add( _sliderMinR ); _sliderRCTime = new Slider( ); _sliderRCTime.SetMinimum(1); _sliderRCTime.SetMaximum(1000); _sliderRCTime.SetValue(DefaultRCTime); _sliderRCTime.SetWidth(200); add( new Label("Narrowing Interval:", Label.RIGHT) ); add( _sliderRCTime ); _sliderMaxA = new Slider( ); _sliderMaxA.SetMinimum(0); _sliderMaxA.SetMaximum(100); _sliderMaxA.SetValue(DefaultMaxA); _sliderMaxA.SetWidth(200); add( new Label("Max. Adaption (%):", Label.RIGHT) ); add( _sliderMaxA ); _sliderMinA = new Slider( ); _sliderMinA.SetMinimum(0); _sliderMinA.SetMaximum(100); _sliderMinA.SetValue(DefaultMinA); _sliderMinA.SetWidth(200); add( new Label("Min. Adaption: (%)", Label.RIGHT) ); add( _sliderMinA ); _sliderCF = new Slider( ); _sliderCF.SetMinimum(0); _sliderCF.SetMaximum(100); _sliderCF.SetValue(DefaultCF); _sliderCF.SetWidth(200); add( new Label("Cooling Factor: (*10)", Label.RIGHT) ); add( _sliderCF ); _sliderTaboo = new Slider( ); _sliderTaboo.SetMinimum(1); _sliderTaboo.SetMaximum(200); _sliderTaboo.SetValue(DefaultTaboo); _sliderTaboo.SetWidth(200); add( new Label("Taboo Size:", Label.RIGHT) ); add( _sliderTaboo ); _sliderTemp = new Slider( ); _sliderTemp.SetMinimum(0); _sliderTemp.SetMaximum(100); _sliderTemp.SetValue(DefaultTemp); _sliderTemp.SetWidth(200); add( new Label("Temperature:", Label.RIGHT) ); add( _sliderTemp ); _sliderJump = new Slider( ); _sliderJump.SetMinimum(0); _sliderJump.SetMaximum(500); _sliderJump.SetValue(DefaultJump); _sliderJump.SetWidth(200); add( new Label("Max. Jump Radius:", Label.RIGHT) ); add( _sliderJump ); _sliderDel = new Slider( ); _sliderDel.SetMinimum(0); _sliderDel.SetMaximum(2000); _sliderDel.SetValue(DefaultDelay); _sliderDel.SetWidth(200); add( new Label("Delay (msec.):", Label.RIGHT) ); add( _sliderDel ); } // protected Thread _controler; public void run() { Thread.currentThread().setPriority(Thread.MIN_PRIORITY); while (true) { try { Thread.sleep(100); } catch (InterruptedException e) { break; } } } public void start() { _controler = new Thread(this); _controler.start(); } public void stop() { if( _controler != null ) _controler.stop(); _controler = null; } public boolean action(Event evt, Object arg) { return true; } public boolean handleEvent(Event evt) { if (evt.id == Event.WINDOW_DESTROY || evt.id == Event.WINDOW_ICONIFY) { _showing=false; hide(); return true; } return super.handleEvent(evt); } } // Class ControlWindow