public void resetSelected() { selected = 0; Population population = selectedPopulationHolder.getSelectedPopulation(); if (population == null) return; updateSelected(population); }
public void mouseClicked(MouseEvent evt) { Population population = selectedPopulationHolder.getSelectedPopulation(); if (population == null) return; int y = evt.getY(); // if (y<0) return; selected = y / FONT_SIZE; updateSelected(population); this.requestFocus(); this.repaint(); }
public void keyPressed(KeyEvent evt) { // System.out.println("Key Pressed"); int code = evt.getKeyCode(); Population population = selectedPopulationHolder.getSelectedPopulation(); if (population == null) return; // Individual individual = selectedIndividualHolder.getSelectedIndividual(); if (code == KeyEvent.VK_UP) { if (selected > 0) selected--; } else if (code == KeyEvent.VK_DOWN) { if (selected < population.getNumberOfIndividuals() - 1) selected++; } updateSelected(population); // if ((selected < 0) || (selected > population.getNumberOfIndividuals())) // selectedIndividualHolder.setSelectedIndividual(null); // else selectedIndividualHolder.setSelectedIndividual(population.getIndividual(selected)); this.repaint(); }
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); } } }