Hallo erstmal,
also folgendes Problem, ich schreibe gerade an einem kleinen Tool für unseren Clan bei World of Tanks wobei es darum geht bestimmten Panzern eine "Panzerauszeit" zu geben.
Ein User hat mehrere Panzer, das funktioniert auch alles ohne probleme, die Datenbankmethoden laufen über ein PHP-Backend(jpmdbc), das funktioniert alles soweit. So nun wollte ich, wenn ein User sich einloggt, dass er seine Tanks aufgelistet bekommt und daneben einen Button "Sperren" bekommt, dort hakt es jetzt.
später kommt noch ein validate();...
und dann halt
Fehler:
Tool.java:138:49: local variable TankObj is accessed from within inner class; needs to be declared final
blockButton_ActionPerformed(evt, TankObj.getUserID(), TankObj.getTankID());
^
Tool.java:138:57: local variable i is accessed from within inner class; needs to be declared final
blockButton_ActionPerformed(evt, TankObj.getUserID(), TankObj.getTankID());
^
Tool.java:138:73: local variable TankObj is accessed from within inner class; needs to be declared final
blockButton_ActionPerformed(evt, TankObj.getUserID(), TankObj.getTankID());
^
Tool.java:138:81: local variable i is accessed from within inner class; needs to be declared final
blockButton_ActionPerformed(evt, TankObj.getUserID(), TankObj.getTankID());
ich wüsste nicht, wie ich i als final deklarieren sollte
geschweige denn die anderen Sachen.
Grüße
Unkaputtbar
also folgendes Problem, ich schreibe gerade an einem kleinen Tool für unseren Clan bei World of Tanks wobei es darum geht bestimmten Panzern eine "Panzerauszeit" zu geben.
Ein User hat mehrere Panzer, das funktioniert auch alles ohne probleme, die Datenbankmethoden laufen über ein PHP-Backend(jpmdbc), das funktioniert alles soweit. So nun wollte ich, wenn ein User sich einloggt, dass er seine Tanks aufgelistet bekommt und daneben einen Button "Sperren" bekommt, dort hakt es jetzt.
Java:
int ANZ = DBHandlers.getAnzTank(GamerObj.getID());
Tank TankObj[] = DBHandlers.getTanks(GamerObj.getID());
Label textTankID[] = new Label[ANZ];
Label textTankName[] = new Label[ANZ];
Label textTankBlocked[] = new Label[ANZ];
Button blockButton[] = new Button[ANZ];
Label textPanzerID = new Label();
textPanzerID.setBounds(0, 25, 55, 13);
textPanzerID.setText("PanzerID");
textPanzerID.setFont(new Font("MS Sans Serif", Font.PLAIN, 13));
cp.add(textPanzerID);
Label textPanzerName = new Label();
textPanzerName.setBounds(60, 25, 55, 13);
textPanzerName.setText("Name");
textPanzerName.setFont(new Font("MS Sans Serif", Font.PLAIN, 13));
cp.add(textPanzerName);
Label textBlocked = new Label();
textBlocked.setBounds(120, 25, 65, 13);
textBlocked.setText("Geblockt?");
textBlocked.setFont(new Font("MS Sans Serif", Font.PLAIN, 13));
cp.add(textBlocked);
for(int i = 0;i<ANZ;i++)
{
textTankID[i] = new Label();
textTankID[i].setBounds(0, (40+i*18), 55, 13);
textTankID[i].setText("" + TankObj[i].getTankID());
textTankID[i].setFont(new Font("MS Sans Serif", Font.PLAIN, 13));
cp.add(textTankID[i]);
textTankName[i] = new Label();
textTankName[i].setBounds(60, (40+i*18), 50, 13);
textTankName[i].setText("" + TankObj[i].getTankname());
textTankName[i].setFont(new Font("MS Sans Serif", Font.PLAIN, 13));
cp.add(textTankName[i]);
textTankBlocked[i] = new Label();
textTankBlocked[i].setBounds(120, (40+i*18), 50, 13);
if(timestamp_now > (long)TankObj[i].getBlockedUntil())
{
textTankBlocked[i].setText("Nein");
}else{
textTankBlocked[i].setText("Ja");
}
textTankBlocked[i].setFont(new Font("MS Sans Serif", Font.PLAIN, 13));
cp.add(textTankBlocked[i]);
blockButton[i].setBounds(175, (40+i*18), 50, 13);
blockButton[i].setLabel("Block");
blockButton[i].addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
blockButton_ActionPerformed(evt, TankObj[i].getUserID(), TankObj[i].getTankID());
}
});
cp.add(blockButton[i]);
und dann halt
Java:
public void blockButton_ActionPerformed(ActionEvent evt, int userid, int tankid){
DBHandlers.blockTank(userid, tankid);
}
Fehler:
Tool.java:138:49: local variable TankObj is accessed from within inner class; needs to be declared final
blockButton_ActionPerformed(evt, TankObj.getUserID(), TankObj.getTankID());
^
Tool.java:138:57: local variable i is accessed from within inner class; needs to be declared final
blockButton_ActionPerformed(evt, TankObj.getUserID(), TankObj.getTankID());
^
Tool.java:138:73: local variable TankObj is accessed from within inner class; needs to be declared final
blockButton_ActionPerformed(evt, TankObj.getUserID(), TankObj.getTankID());
^
Tool.java:138:81: local variable i is accessed from within inner class; needs to be declared final
blockButton_ActionPerformed(evt, TankObj.getUserID(), TankObj.getTankID());
ich wüsste nicht, wie ich i als final deklarieren sollte
Grüße
Unkaputtbar
Zuletzt bearbeitet: