Ich habe ein Problem:
Beim Vor- und Zurück-Button soll sich ein JPanel geringfügig ändern. Das ganze wird mir den Variablen actualScene, previousScene und nextScene durchgezählt. Jedoch werden bei einem Klick die Ergebnisse mehrfach aufgerufen (evtl. potenziert sich das). Und entsprechend werden einzelne Panels übersprungen (gezeigt werden Panel 1, 2, 4 und das letzte). Woran kann das liegen?
Was muss ich ändern?
Beim Vor- und Zurück-Button soll sich ein JPanel geringfügig ändern. Das ganze wird mir den Variablen actualScene, previousScene und nextScene durchgezählt. Jedoch werden bei einem Klick die Ergebnisse mehrfach aufgerufen (evtl. potenziert sich das). Und entsprechend werden einzelne Panels übersprungen (gezeigt werden Panel 1, 2, 4 und das letzte). Woran kann das liegen?
Code:
public void initPanel(int scene) {
actualScene = scene;
previousScene = scene-1;
nextScene = scene+1;
//System.out.println(actualScene);
GridBagLayout layout = new GridBagLayout();
setLayout(layout);
back.setText(Text.getBackButton());
back.setPreferredSize(new Dimension (Constants.getEXERCISE_BUTTON_WIDTH(), Constants.getEXERCISE_BUTTON_HEIGT()));
if (actualScene==1) {
back.setEnabled(false);
}
else {
back.setEnabled(true);
}
back.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
backActionPerformed(evt);
}
});
add(back, new GridBagConstraints(
0, 0,
1, 1,
0.0, 0.0,
GridBagConstraints.NORTHWEST,
GridBagConstraints.NONE,
new Insets(5, 5, 5, 5),
0, 0));
go.setText(Text.getGoButton());
if (actualScene==12) {
go.setEnabled(false);
}
else {
go.setEnabled(true);
}
go.setPreferredSize(new Dimension (Constants.getEXERCISE_BUTTON_WIDTH(), Constants.getEXERCISE_BUTTON_HEIGT()));
go.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
goActionPerformed(evt);
}
});
add(go, new GridBagConstraints(
1, 0,
1, 1,
0.0, 0.0,
GridBagConstraints.NORTHWEST,
GridBagConstraints.NONE,
new Insets(5, 5, 5, 5),
0, 0));
switch (scene) {
case 1: problemArea.setText(Text.getVNR_CLASSIFICATION_SCENE_1()); break;
case 2: problemArea.setText(Text.getVNR_CLASSIFICATION_SCENE_2()); break;
case 3: problemArea.setText(Text.getVNR_CLASSIFICATION_SCENE_3()); break;
case 4: problemArea.setText(Text.getVNR_CLASSIFICATION_SCENE_4()); break;
case 5: problemArea.setText(Text.getVNR_CLASSIFICATION_SCENE_5()); break;
case 6: problemArea.setText(Text.getVNR_CLASSIFICATION_SCENE_6()); break;
case 7: problemArea.setText(Text.getVNR_CLASSIFICATION_SCENE_7()); break;
case 8: problemArea.setText(Text.getVNR_CLASSIFICATION_SCENE_8()); break;
case 9: problemArea.setText(Text.getVNR_CLASSIFICATION_SCENE_9()); break;
case 10: problemArea.setText(Text.getVNR_CLASSIFICATION_SCENE_10()); break;
case 11: problemArea.setText(Text.getVNR_CLASSIFICATION_SCENE_11()); break;
case 12: problemArea.setText(Text.getVNR_CLASSIFICATION_SCENE_12()); break;
}
problemArea.setPreferredSize(new Dimension(Constants.getPROBLEM_TEXTAREA_WIDTH(), Constants.getPROBLEM_TEXTAREA_HEIGT()));
problemArea.setWrapStyleWord(true);
problemArea.setEditable(false);
problemArea.setLineWrap(true);
add(problemArea, new GridBagConstraints(
0, 1,
2, 1,
0.0, 0.0,
GridBagConstraints.NORTHWEST,
GridBagConstraints.NONE,
new Insets(5, 5, 5, 5),
0, 0));
}
...
/**
* Action-Methode für den Button Vor
* @param evt - ActionEvent
*/
public void goActionPerformed(ActionEvent evt) {
if (1<=nextScene && nextScene<=12) {
initPanel(nextScene);
}
}
/**
* Action-Methode für den Button Zurück
* @param evt - ActionEvent
*/
public void backActionPerformed(ActionEvent evt) {
if (1<=previousScene && previousScene<=12) {
initPanel(previousScene);
}
}
Was muss ich ändern?