jeudi 21 mai 2015

Wird die Variable nicht übergeben ?

Hallo liebe Freunde,

bin grade dabei wieder irgendwas zu programmieren. Nun habe ich wieder mal ein Problem und verstehe dieses nicht. Warum wird meine Variable public int arrayReihnfolge nicht der Klasse Bilder übertragen ? Beim der Klasse Bilder hat die Variable reinfolge immer den wert null, obwohl ich die Variable arrayReihnfolge beim klicken eines Buttons um 1 erhöhe. Diese Variable wird per abstract Methode specialShape zur Klasse Übertragen aber der Wert der dort ankommt ist immer null.

Java Code:

  1.  
  2. package de.marvin.oopLabor5;
  3.  
  4. import java.awt.Dimension;
  5. import java.awt.Graphics;
  6. import java.awt.Point;
  7. import java.awt.event.ActionEvent;
  8. import java.awt.event.ActionListener;
  9. import java.awt.event.MouseEvent;
  10. import java.awt.event.MouseListener;
  11.  
  12. import javax.swing.ImageIcon;
  13. import javax.swing.JButton;
  14. import javax.swing.JPanel;
  15.  
  16. public abstract class Geruest extends JPanel implements ActionListener, MouseListener
  17. {
  18. private static final long serialVersionUID = 1L;
  19.  
  20. protected int rahmenStartx = 5;
  21. protected int rahmenStarty = 5;
  22. protected int rahmenBreite = 10;
  23. protected int rahmenHoehe = 10;
  24. private JButton[] but;
  25. private double bildGroesse = 1.1;
  26. protected int arrayGroesse;
  27. public int arrayReinfolge;
  28.  
  29. private final ImageIcon bild1 = new ImageIcon("pics/luppeWeg.png");
  30. private final ImageIcon bild2 = new ImageIcon("pics/luppeRein.png");
  31. private final ImageIcon bild3 = new ImageIcon("pics/zuruck.png");
  32. private final ImageIcon bild4 = new ImageIcon("pics/back.png");
  33. private final ImageIcon bild5 = new ImageIcon("pics/forward.png");
  34.  
  35.  
  36.  
  37. abstract void specialShape(Graphics g, int x, int y, int breite, int hoehe, int reinfolge);
  38.  
  39. protected void buttonErstellen(int anzahl)
  40. {
  41. JButton[] buttons = new JButton[anzahl];
  42. for(int i = 0; i < buttons.length; i++)
  43. {
  44. switch(i)
  45. {
  46. case 0:
  47. buttons[i] = new JButton();
  48. buttons[i].setIcon(bild1);
  49. this.add(buttons[i]);
  50. buttons[i].addActionListener(this);
  51. break;
  52. case 1:
  53. buttons[i] = new JButton();
  54. buttons[i].setIcon(bild2);
  55. this.add(buttons[i]);
  56. buttons[i].addActionListener(this);
  57. break;
  58. case 2:
  59. buttons[i] = new JButton();
  60. buttons[i].setIcon(bild3);
  61. this.add(buttons[i]);
  62. buttons[i].addActionListener(this);
  63. break;
  64. case 3:
  65. buttons[i] = new JButton();
  66. buttons[i].setIcon(bild4);
  67. this.add(buttons[i]);
  68. buttons[i].addActionListener(this);
  69. break;
  70. case 4:
  71. buttons[i] = new JButton();
  72. buttons[i].setIcon(bild5);
  73. this.add(buttons[i]);
  74. buttons[i].addActionListener(this);
  75. break;
  76. default:
  77. buttons[i] = new JButton("empty");
  78. this.add(buttons[i]);
  79. buttons[i].addActionListener(this);
  80. break;
  81. }
  82. }
  83. but = buttons.clone();
  84. }
  85.  
  86. @Override
  87. public void paint(Graphics g)
  88. {
  89. super.paint(g);
  90. Dimension dBorder = this.getSize();
  91. Dimension dFill = new Dimension((int)(dBorder.width/bildGroesse),(int)(dBorder.height/bildGroesse));
  92. Point p0Fill = new Point((dBorder.width - dFill.width) /2,(dBorder.height - dFill.height)/2);
  93.  
  94. specialShape(g, p0Fill.x, p0Fill.y, dFill.width, dFill.height,arrayReinfolge);
  95. }
  96.  
  97.  
  98. @Override
  99. public void actionPerformed(ActionEvent e)
  100. {
  101. if(e.getSource() == but[0])
  102. {
  103. System.out.println("hi");
  104. }
  105. else if(e.getSource() == but[1])
  106. {
  107.  
  108. }
  109. else if(e.getSource() == but[2])
  110. {
  111. this.bildGroesse = 1;
  112. }
  113. else if(e.getSource() == but[3])
  114. {
  115.  
  116. }
  117. else if(e.getSource() == but[4])
  118. {
  119. arrayReinfolge++;
  120. repaint();
  121. }
  122. }
  123.  
  124. @Override
  125. public void mouseClicked(MouseEvent arg0) {
  126. // TODO Auto-generated method stub
  127.  
  128. }
  129.  
  130. @Override
  131. public void mouseEntered(MouseEvent arg0) {
  132. // TODO Auto-generated method stub
  133.  
  134. }
  135.  
  136. @Override
  137. public void mouseExited(MouseEvent arg0) {
  138. // TODO Auto-generated method stub
  139.  
  140. }
  141.  
  142. @Override
  143. public void mousePressed(MouseEvent arg0) {
  144. // TODO Auto-generated method stub
  145.  
  146. }
  147.  
  148. @Override
  149. public void mouseReleased(MouseEvent arg0) {
  150. // TODO Auto-generated method stub
  151.  
  152. }
  153. }



Klasse 2 Bilder

Java Code:

  1.  
  2. package de.marvin.oopLabor5;
  3.  
  4. import java.awt.Color;
  5. import java.awt.Graphics;
  6. import java.awt.Image;
  7. import java.awt.Toolkit;
  8. import java.io.File;
  9.  
  10. public class Bilder extends Geruest
  11. {
  12. private static final long serialVersionUID = 1L;
  13. private File[] bilder;
  14.  
  15.  
  16. @Override
  17. void specialShape(Graphics g, int x, int y, int breite, int hoehe, int reinfolge)
  18. {
  19. File myDirectory = new File ("pics/verzeichnis");
  20. bilder = myDirectory.listFiles();
  21. Image[] verzeichnisse = new Image[bilder.length];
  22. arrayGroesse = bilder.length;
  23.  
  24. for(int i = 0; i < bilder.length;i++)
  25. {
  26. verzeichnisse[i] = Toolkit.getDefaultToolkit().getImage(bilder[i].toString());
  27. }
  28. g.drawImage(verzeichnisse[reinfolge],x,y,breite,hoehe,this);
  29. g.setColor(Color.BLUE);
  30. g.drawRect(x-this.rahmenStartx, y-this.rahmenStarty, breite+this.rahmenBreite, hoehe+this.rahmenHoehe);
  31. }
  32.  
  33. }


Wird die Variable nicht übergeben ?

0 commentaires:

Enregistrer un commentaire