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.
Klasse 2 Bilder
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:
package de.marvin.oopLabor5;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Point;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JPanel;
public abstract class Geruest extends JPanel implements ActionListener, MouseListener
{
private static final long serialVersionUID = 1L;
protected int rahmenStartx = 5;
protected int rahmenStarty = 5;
protected int rahmenBreite = 10;
protected int rahmenHoehe = 10;
private JButton[] but;
private double bildGroesse = 1.1;
protected int arrayGroesse;
public int arrayReinfolge;
private final ImageIcon bild1 = new ImageIcon("pics/luppeWeg.png");
private final ImageIcon bild2 = new ImageIcon("pics/luppeRein.png");
private final ImageIcon bild3 = new ImageIcon("pics/zuruck.png");
private final ImageIcon bild4 = new ImageIcon("pics/back.png");
private final ImageIcon bild5 = new ImageIcon("pics/forward.png");
abstract void specialShape(Graphics g, int x, int y, int breite, int hoehe, int reinfolge);
protected void buttonErstellen(int anzahl)
{
JButton[] buttons = new JButton[anzahl];
for(int i = 0; i < buttons.length; i++)
{
switch(i)
{
case 0:
buttons[i] = new JButton();
buttons[i].setIcon(bild1);
this.add(buttons[i]);
buttons[i].addActionListener(this);
break;
case 1:
buttons[i] = new JButton();
buttons[i].setIcon(bild2);
this.add(buttons[i]);
buttons[i].addActionListener(this);
break;
case 2:
buttons[i] = new JButton();
buttons[i].setIcon(bild3);
this.add(buttons[i]);
buttons[i].addActionListener(this);
break;
case 3:
buttons[i] = new JButton();
buttons[i].setIcon(bild4);
this.add(buttons[i]);
buttons[i].addActionListener(this);
break;
case 4:
buttons[i] = new JButton();
buttons[i].setIcon(bild5);
this.add(buttons[i]);
buttons[i].addActionListener(this);
break;
default:
buttons[i] = new JButton("empty");
this.add(buttons[i]);
buttons[i].addActionListener(this);
break;
}
}
but = buttons.clone();
}
@Override
public void paint(Graphics g)
{
super.paint(g);
Dimension dBorder = this.getSize();
Dimension dFill = new Dimension((int)(dBorder.width/bildGroesse),(int)(dBorder.height/bildGroesse));
Point p0Fill = new Point((dBorder.width - dFill.width) /2,(dBorder.height - dFill.height)/2);
specialShape(g, p0Fill.x, p0Fill.y, dFill.width, dFill.height,arrayReinfolge);
}
@Override
public void actionPerformed(ActionEvent e)
{
if(e.getSource() == but[0])
{
System.out.println("hi");
}
else if(e.getSource() == but[1])
{
}
else if(e.getSource() == but[2])
{
this.bildGroesse = 1;
}
else if(e.getSource() == but[3])
{
}
else if(e.getSource() == but[4])
{
arrayReinfolge++;
repaint();
}
}
@Override
public void mouseClicked(MouseEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void mouseEntered(MouseEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void mouseExited(MouseEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void mousePressed(MouseEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void mouseReleased(MouseEvent arg0) {
// TODO Auto-generated method stub
}
}
Klasse 2 Bilder
Java:
package de.marvin.oopLabor5;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Toolkit;
import java.io.File;
public class Bilder extends Geruest
{
private static final long serialVersionUID = 1L;
private File[] bilder;
@Override
void specialShape(Graphics g, int x, int y, int breite, int hoehe, int reinfolge)
{
File myDirectory = new File ("pics/verzeichnis");
bilder = myDirectory.listFiles();
Image[] verzeichnisse = new Image[bilder.length];
arrayGroesse = bilder.length;
for(int i = 0; i < bilder.length;i++)
{
verzeichnisse[i] = Toolkit.getDefaultToolkit().getImage(bilder[i].toString());
}
g.drawImage(verzeichnisse[reinfolge],x,y,breite,hoehe,this);
g.setColor(Color.BLUE);
g.drawRect(x-this.rahmenStartx, y-this.rahmenStarty, breite+this.rahmenBreite, hoehe+this.rahmenHoehe);
}
}