private void updateSelected(Population pop) { int popSize = pop.getNumberOfIndividuals(); if (selected > popSize) selected = popSize - 1; if (selected < 0) selected = 0; if ((selected >= 0) && (selected < popSize)) // selectedVariable = (YoVariable) variables.getVariables().get(selected); { selectedIndividualHolder.setSelectedIndividual(pop.getIndividual(selected)); } }
public void paintComponent(Graphics g) { super.paintComponent(g); // g.drawString("Hello", 100, 100); Population population = selectedPopulationHolder.getSelectedPopulation(); if (population == null) return; GeneticAlgorithmIndividualToEvaluate[] individuals = population.getAllIndividuals(); Rectangle rectangle = this.getVisibleRect(); int i_min = (rectangle.y) / FONT_SIZE - 1; int i_max = (rectangle.y + rectangle.height) / FONT_SIZE + 1; int size = individuals.length; i_min = Math.max(i_min, 0); i_min = Math.min(i_min, size); i_max = Math.max(i_max, 0); i_max = Math.min(i_max, size); // for(int i=0; i<individuals.length; i++) // { for (int i = i_min; i < i_max; i++) { GeneticAlgorithmIndividualToEvaluate ind = individuals[i]; if (selectedIndividualHolder.getSelectedIndividual() == ind) g.setColor(Color.red); else g.setColor(Color.black); g.drawString(ind.getName(), 2, i * FONT_SIZE + 10); if (ind.isEvaluationDone()) { double fitness = ind.getFitness(); g.drawString(Double.toString(fitness), 200, i * FONT_SIZE + 10); } } }