⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gaaparams.java

📁 Java实现的遗传算法工具集:GA Playground
💻 JAVA
📖 第 1 页 / 共 4 页
字号:
			grid.setGridCell(i,2,String.valueOf(problem.alleles[i].max));
			grid.setGridCell(i,3,String.valueOf(problem.alleles[i].step));
			grid.setGridCell(i,4,String.valueOf(problem.alleles[i].nsteps));
			//grid.setGridCell(i,5,String.valueOf(problem.alleles[i].value));
			grid.setGridCell(i,5,String.valueOf(0));
			grid.setGridCell(i,6,"Allele No."+i);
		}
		
		GaaScsGText minEdit = new GaaScsGText();
		minEdit.setName("MinEdit");
		GaaScsGText maxEdit = new GaaScsGText();
		maxEdit.setName("MaxEdit");
		GaaScsGText stepEdit = new GaaScsGText();
		stepEdit.setName("StepEdit");
		GaaScsGText nstepEdit = new GaaScsGText();
		nstepEdit.setName("NstepEdit");
		GaaScsGText defaultEdit = new GaaScsGText();
		defaultEdit.setName("DefaultEdit");
		GaaScsGText descEdit = new GaaScsGText();
		descEdit.setName("DescEdit");
		descEdit.setBounds(0, 0, 200, 20);

		ScsGSpinner numSpinner = new com.scs.awt.ScsGSpinner();
		numSpinner.setName("NumSpinner");
		numSpinner.setMaximum(99);
		
		grid.getColumn(0).setEditComponent(numSpinner);		
		grid.getColumn(1).setEditComponent(minEdit);		
		grid.getColumn(2).setEditComponent(maxEdit);		
		grid.getColumn(3).setEditComponent(stepEdit);		
		grid.getColumn(4).setEditComponent(nstepEdit);		
		grid.getColumn(5).setEditComponent(defaultEdit);		
		grid.getColumn(6).setEditComponent(descEdit);	
		
		return grid;
}


private void resetDefGrid() {
	
		for (int i=0;i<problem.alleles.length;i++) {
			defGrid.setGridCell(i,0,Integer.toString(i));
			defGrid.setGridCell(i,1,String.valueOf(problem.alleles[i].min));
			defGrid.setGridCell(i,2,String.valueOf(problem.alleles[i].max));
			defGrid.setGridCell(i,3,String.valueOf(problem.alleles[i].step));
			defGrid.setGridCell(i,4,String.valueOf(problem.alleles[i].nsteps));
			defGrid.setGridCell(i,5,String.valueOf(problem.alleles[i].value));
			defGrid.setGridCell(i,6,"Allele No."+i);
		}
		
}


private void updateDefGrid() {

		for (int i=0;i<problem.alleles.length;i++) {
			defGrid.setGridCell(i,0,Integer.toString(i));
			defGrid.setGridCell(i,1,String.valueOf(problem.alleles[i].min));
			defGrid.setGridCell(i,2,String.valueOf(problem.alleles[i].max));
			defGrid.setGridCell(i,3,String.valueOf(problem.alleles[i].step));
			defGrid.setGridCell(i,4,String.valueOf(problem.alleles[i].nsteps));
			defGrid.setGridCell(i,5,String.valueOf(problem.alleles[i].value));
			defGrid.setGridCell(i,6,"Allele No."+i);
		}
	
}

private void updateDefData() {

		for (int i=0;i<problem.alleles.length;i++) {
			try {
				problem.alleles[i].min = Double.valueOf(defGrid.getGridCell(i,1).trim()).doubleValue();
				problem.alleles[i].max = Double.valueOf(defGrid.getGridCell(i,2).trim()).doubleValue();
				problem.alleles[i].step = Double.valueOf(defGrid.getGridCell(i,3).trim()).doubleValue();
				problem.alleles[i].nsteps = Integer.parseInt(defGrid.getGridCell(i,4).trim());
				problem.alleles[i].value = Double.valueOf(defGrid.getGridCell(i,5).trim()).doubleValue();
			} catch (NumberFormatException e){}			
		}
	
}

private void updateMapData() {
	
		for (int i=0;i<problem.alleles.length;i++) {
			for (int j=0;j<problem.mapOrder;j++) {
				String s = mapGrid.getGridCell(i,j+1).trim();
				double d = Double.valueOf(mapGrid.getGridCell(i,j+1).trim()).doubleValue();
				problem.mapAlleles[i][j] = Double.valueOf(mapGrid.getGridCell(i,j+1).trim()).doubleValue();
			}
		}
	
}


private void updateMapGrid() {
	
		for (int i=0;i<problem.alleles.length;i++) {
			mapGrid.setGridCell(i,0,Integer.toString(i));
			for (int j=0;j<problem.mapOrder;j++) {
				mapGrid.setGridCell(i,j+1,dFormat.format(problem.mapAlleles[i][j]));
			}
		}
	
}


private void resetMapGrid() {
	
		for (int i=0;i<problem.alleles.length;i++) {
			mapGrid.setGridCell(i,0,Integer.toString(i));
			for (int j=0;j<problem.mapOrder;j++) {
				mapGrid.setGridCell(i,j+1,dFormat.format(0));
			}
		}
	
}


private ScsGrid createMapGrid() {
		
		int i, j;
		String txt;
		
		ScsGrid grid = new com.scs.awt.ScsGrid();
		grid.setName("DefGrid");
		String columnSettings [] =  
		{"#|RIGHT|CENTER|20|false|true|false", 
		"D1|RIGHT|CENTER|40|false", 
		"D2|RIGHT|CENTER|40|false", 
		"D3|RIGHT|CENTER|40", 
		"D4|RIGHT|CENTER|40", 
		"D5|RIGHT|CENTER|40", 
		"D6|RIGHT|CENTER|40|false", 
		"D7|RIGHT|CENTER|40", 
		"D8|RIGHT|CENTER|40", 
		"D9|RIGHT|CENTER|40", 
		"D10|RIGHT|CENTER|40"}; 
		grid.setColumnSettings(columnSettings);
		grid.setNumberOfRows(8);
		//grid.setRowGap(4);

		
		grid.setRowSelectColor(Color.red);
		grid.setBorderEffect(0);
		grid.setBounds(26, 12, 526, 240);
		grid.setGridTextFont(new Font("dialog", 1, 11));
		grid.setNumberOfRows(8);
		grid.setColumnGap(8);
		grid.setCellSelection(true);
		grid.setRowSelectFont(new Font("dialog", 1, 11));
		grid.setGridTextColor(Color.blue);
		grid.setRowHeight(13);
		
		
		//grid.addCellListener(this);		
		
		for (i=0;i<problem.alleles.length;i++) {
			grid.setGridCell(i,0,Integer.toString(i));
			for (j=0;j<problem.mapOrder;j++) {
				grid.setGridCell(i,j+1,dFormat.format(problem.mapAlleles[i][j]));
			}
		}
		
			
		GaaScsGText mapF0 = new GaaScsGText();
		mapF0.setName("mapF0");
		GaaScsGText mapF1 = new GaaScsGText();
		mapF1.setName("mapF1");
		GaaScsGText mapF2 = new GaaScsGText();
		mapF2.setName("mapF2");
		GaaScsGText mapF3 = new GaaScsGText();
		mapF3.setName("mapF3");
		GaaScsGText mapF4 = new GaaScsGText();
		mapF4.setName("mapF4");
		GaaScsGText mapF5 = new GaaScsGText();
		mapF5.setName("mapF5");
		GaaScsGText mapF6 = new GaaScsGText();
		mapF6.setName("mapF6");
		GaaScsGText mapF7 = new GaaScsGText();
		mapF7.setName("mapF7");
		GaaScsGText mapF8 = new GaaScsGText();
		mapF8.setName("mapF8");
		GaaScsGText mapF9 = new GaaScsGText();
		mapF9.setName("mapF9");
		GaaScsGText mapF10 = new GaaScsGText();
		mapF10.setName("mapF10");
		

		ScsGSpinner mapSpinner = new com.scs.awt.ScsGSpinner();
		mapSpinner.setName("MapSpinner");
		mapSpinner.setMaximum(99);
		
		grid.getColumn(0).setEditComponent(mapSpinner);		
		grid.getColumn(1).setEditComponent(mapF1);		
		grid.getColumn(2).setEditComponent(mapF2);		
		grid.getColumn(3).setEditComponent(mapF3);		
		grid.getColumn(4).setEditComponent(mapF4);		
		grid.getColumn(5).setEditComponent(mapF5);		
		grid.getColumn(6).setEditComponent(mapF6);		
		grid.getColumn(7).setEditComponent(mapF7);		
		grid.getColumn(8).setEditComponent(mapF8);		
		grid.getColumn(9).setEditComponent(mapF9);		
		grid.getColumn(10).setEditComponent(mapF10);		
		
		return grid;
}
	

		
    public void mouseEntered(MouseEvent e) {
    	
    	int i, j;
    	
    	if (problem.withStatusHelp) {
				if (e.getSource() instanceof Label)
				{
					Label lbl = (Label)e.getSource();
					for (i=0;i<GROUPNUM;i++) {
					   for (j=0;j<groupCount[i];j++) {
								if (labels[i][j] == lbl)
									GaaApplet.statusLabel.setText(tips[i][j]);
						}
					}
				}
				else
				if (e.getSource() instanceof TextComponent)
				{
					TextComponent txt = (TextComponent)e.getSource();
					for (i=0;i<GROUPNUM;i++) {
					   for (j=0;j<groupCount[i];j++) {
								if (texts[i][j] == txt)
									GaaApplet.statusLabel.setText(tips[i][j]);
						}
					}
					
					if ((txt == txtExpression))
							GaaApplet.statusLabel.setText("Enter/Modify mathematical expression with variables x1, [x2,x3,x4...x20] (e.g. x1/x2+sin(x1))");
					else if ((txt == txtMin))
							GaaApplet.statusLabel.setText("Set a common minimum value for each paramater (set non-equal parameters in Alleles Definition Table)");
					else if ((txt == txtMax))
							GaaApplet.statusLabel.setText("Set a common maximum value for each paramater (set non-equal parameters in Alleles Definition Table)");
					else if ((txt == txtNumGenes))
							GaaApplet.statusLabel.setText("Set number of genes in a chromosome (chrmosome length)");
					else if ((txt == txtNumVariables))
							GaaApplet.statusLabel.setText("Define number of unique variables (x1,x2,x3...x20)");
					else if ((txt == txtExitValue))
							GaaApplet.statusLabel.setText("Define function value at which the process should stop");
				}
				else
				if (e.getSource() instanceof Button)
				{
					Button but = (Button)e.getSource();
					if ((but == buttons[0][0]) || (but == buttons[1][0]) || (but == buttons[2][0]) || (but == buttons[3][0]))
							GaaApplet.statusLabel.setText("Reset all values to current defaults");
					else if ((but == buttons[0][1]) || (but == buttons[1][1]) || (but == buttons[2][1]) || (but == buttons[3][1]))
							GaaApplet.statusLabel.setText("Update problem parameters according to displaued values");
					else if ((but == buttons[0][2]) || (but == buttons[1][2]) || (but == buttons[2][2]) || (but == buttons[3][2]))
							GaaApplet.statusLabel.setText("Load parameters from a file");
					else if ((but == buttons[0][3]) || (but == buttons[1][3]) || (but == buttons[2][3]) || (but == buttons[3][3]))
							GaaApplet.statusLabel.setText("Save displayed parameters to a file");
					else if ((but == buttons[0][4]) || (but == buttons[1][4]) || (but == buttons[2][4]) || (but == buttons[3][4]))
							GaaApplet.statusLabel.setText("Re-Load values from default parameters file");
					else if ((but == udfButtons[0]))
							GaaApplet.statusLabel.setText("Define the optimization problem according to the settings on this screen");
					else if ((but == udfButtons[1]))
							GaaApplet.statusLabel.setText("Display instruction for interactive user defined function optimization");
					else if ((but == strategyButtons[0]))
							GaaApplet.statusLabel.setText("Define properties for strategy evolution experiment");
					else if ((but == strategyButtons[1]))
							GaaApplet.statusLabel.setText("Display instruction for experimenting with strategy evolution");
					
				}
			}
    	
    }


    public void mouseExited(MouseEvent e) {
    	
    	GaaApplet.statusLabel.setText("");
    	
    }
    
    public void mouseClicked(MouseEvent e) {
    	
    	int i, ret;
    	
			if (e.getSource() instanceof Button)
			{
				Button btn = (Button)e.getSource();
				if ((btn == buttons[0][0]) || (btn == buttons[1][0]) || (btn == buttons[2][0]) || (btn == buttons[3][0])){
						initParameters(false);
						problem.defineAlleles();
						ret = MsgDialog.msg("Confirmation", "Parameters reset", MsgDialog.MB_OK, 0);
				}
				else if ((btn == buttons[0][1]) || (btn == buttons[1][1]) || (btn == buttons[2][1]) || (btn == buttons[3][1])){
						GaaApplet.statusLabel.setText("Please wait...");
						this.setCursor(new Cursor(Cursor.WAIT_CURSOR));
						buttons[0][1].setCursor(new Cursor(Cursor.WAIT_CURSOR));
						buttons[1][1].setCursor(new Cursor(Cursor.WAIT_CURSOR));
						buttons[2][1].setCursor(new Cursor(Cursor.WAIT_CURSOR));
						intPanel.setCursor(new Cursor(Cursor.WAIT_CURSOR));
						reaPanel.setCursor(new Cursor(Cursor.WAIT_CURSOR));
						strPanel.setCursor(new Cursor(Cursor.WAIT_CURSOR));
						
						updateParameters(0);
						problem.defineAlleles();
						pop.initPopulation();
						updateDefGrid();
						updateMapGrid();
						
						GaaApplet.statusLabel.setText("");
						this.setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
						this.setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
						buttons[0][1].setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
						buttons[1][1].setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
						buttons[2][1].setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
						intPanel.setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
						reaPanel.setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
						strPanel.setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
						ret = MsgDialog.msg("Confirmation", "Data Updated", MsgDialog.MB_OK, 0);

				}
				if ((btn == buttons[0][4]) || (btn == buttons[1][4]) || (btn == buttons[2][4]) || (btn == buttons[3][4])){
						problem = new GaaProblem(GaaApplet.mainDir, problem.parFileName);
						initParameters(false);
						problem.defineAlleles();
						ret = MsgDialog.msg("Confirmation", "Parameters reloded from default file", MsgDialog.MB_OK, 0);
				}
				if ((btn == buttons[0][2]) || (btn == buttons[1][2]) || (btn == buttons[2][2]) || (btn == buttons[3][2])){
					loadParams();
				}
				if ((btn == buttons[0][3]) || (btn == buttons[1][3]) || (btn == buttons[2][3]) || (btn == buttons[3][3])){
					saveParams();
				}

				else if (btn == defButtons[0])
					initDefGrid();
				else if (btn == defButtons[1])
					copyDefGridSelected();	
				else if (btn == defButtons[2]) {
					updateDefData();
				}
				else if (btn == defButtons[3]) {
					updateDefGrid();
				}
				
				else if (btn == mapButtons[0]) {
					resetMapGrid();
				}
				else if (btn == mapButtons[1]) {
					updateMapData();
				}
				else if (btn == mapButtons[2]) {
					updateMapGrid();
				}
				
				else if (btn == udfButtons[0]) {
					if (GaaApplet.gaaAppMode.equals("Applet"))
						ret = MsgDialog.msg("Not supported in Applet mode", "This option can only be accessed in Application mode", MsgDialog.MB_OK, 0);
					else
						updateUdfPanel();
				}
				else if (btn == udfButtons[1]) {
					GaaApplet.udfhelpwin.show();
				}
				
				else if (btn == strategyButtons[0]) {
					updateStrategyPanel();
				}
				else if (btn == strategyButtons[1]) {
					GaaApplet.strategyhelpwin.show();
				}
				
			}
    	
    }

    public void mousePressed(MouseEvent e) {
    	
    	int i,j;
    	
      if (e.isMetaDown()) {
      	//GaaApplet.statusLabel.setText(tips[0][0]);	
      	
				if (e.getSource() instanceof Label)
				{
					Label lbl = (Label)e.getSource();
					for (i=0;i<GROUPNUM;i++) {
					   for (j=0;j<groupCount[i];j++) {
								if (labels[i][j] == lbl)
									GaaApplet.statusLabel.setText(helps[i][j]);
						}
					}
				}
				else
				if (e.getSource() instanceof TextField)
				{
					TextField txt = (TextField)e.getSource();
					for (i=0;i<GROUPNUM;i++) {
					   for (j=0;j<groupCount[i];j++) {
								if (texts[i][j] == txt)
									GaaApplet.statusLabel.setText(helps[i][j]);
						}
					}
				}
      }
    }

    public void mouseReleased(MouseEvent e) {
    		System.gc();
    		//statusLabel.setText("");
    }    
	
    public void actionPerformed( ActionEvent evt ) {
			Object src = evt.getSource();
			//statusLabel.setText("Action evt= "+evt.toString()+" src= "+src.toString());
    }
    
    public void cellChanged(CellEvent evt) {
	
		}
	
		public void cellSelected(CellEvent evt) {
			Object src = evt.getSource();
			//statusLabel.setText("CellSelected evt= "+evt.toString()+" src= "+src.toString());

		}	
		
		
		public void itemStateChanged(ItemEvent e) {
			
			int sel;
			String txt;
			
			if (e.getSource() instanceof Choice) {
				Choice ch = (Choice)e.getSource();
				if (ch == chcChoice1) {
					sel = ch.getSelectedIndex();
					txt = ch.getSelectedItem();	
					txtString1.setText(strategyStrings[sel]);
				}	
				else if (ch == chcChoice2) {
					sel = ch.getSelectedIndex();
					txt = ch.getSelectedItem();	
					txtString2.setText(strategyStrings[sel]);
				}	
			}
		
		} 


}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -