Rešitev: program Simulator prebivalstva (grafičen del)

Iz MaFiRaWiki

Naloga: simulator prebivalstva

  1. // koda odgovorna za risanje grafa
  2. public class Plosca extends JPanel {
  3.  
  4. int x;
  5. int y;
  6. int x2;
  7. int y2;
  8. int[] gr;
  9. int krat;
  10. int skala;
  11. int skalax;
  12.  
  13. public Plosca(int xx, int yy, int xx2, int yyy) {
  14. x = xx; y = yy;
  15. x2 = xx2; y2 = yyy;
  16.  
  17. }
  18.  
  19. public void nastavi(int[] tab, int kratnik) {
  20. krat = kratnik;
  21. gr = new int[krat];
  22. for (int i = 0; i < kratnik; i++){
  23. gr[i] = tab[i];
  24. }
  25. skala = gr[0]/122;
  26. skalax = 350/krat;
  27.  
  28. }
  29. //potrebna koda za ponovno izrisanje grafa ob pritisku na gumb
  30. protected void paintComponent(Graphics g) {
  31.  
  32. super.paintComponent(g);
  33. setBackground(Color.WHITE);
  34. g.setColor(Color.BLACK);
  35. //System.out.println("Izvedbe:" + krat);
  36. //for(int i = 0; i < krat - 1; i++) {
  37. // System.out.println("tabela" + i+ ":" + gr[i]);
  38. //}
  39. int j = 0;
  40. double k;
  41. for(int i = 0; i < krat - 1; i++) {
  42. g.drawLine(j, (((245 - gr[i]/skala) - 122) * 2) + 122, j + 5, (((245 - gr[i+1]/skala) - 122) * 2) + 122);
  43. if (krat == 50) k = 7.1;
  44. else k = 3.5;
  45. j = (int)(j + k);
  46. //if (skalax * i > 350) break;
  47. }
  48.  
  49. g.drawLine(0,122,350,122);
  50. g.drawLine(0,61,350,61);
  51. g.drawLine(0,183,350,183);
  52. }
  53. }
  54. ...
  55. //sledeca koda kasneje v programu klice zgornjo kodo.
  56. drawFrame.nastavi(tabela, izvedba);
  57. drawFrame.validate();
  58. drawFrame.removeAll();
  59. drawFrame.repaint();
  60. stikalo = 0;

Glej tudi

Osebna orodja