, wie ich mit meinem kleinen Programm Fortschritte habe ich 4-Taste, die nach den gleichen Regeln Regeln sind, und ich weiß nicht, wie Sie den Code zu reduzieren, ich bin fast sicher, kann es vereinfachen werden:Java-Code Umstrukturierung
private void initGame(Quizz quizz) {
jLabelScore = new javax.swing.JLabel();
jLabelComptQ = new javax.swing.JLabel();
jButtonA = new javax.swing.JButton();
jButtonB = new javax.swing.JButton();
jButtonC = new javax.swing.JButton();
jButtonD = new javax.swing.JButton();
int i = quizz.aleatQuestion();
ArrayList<Reponse> listeRep = quizz.showAnswer(i);
Reponse reponseA = listeRep.get(0);
Reponse reponseB = listeRep.get(1);
Reponse reponseC = listeRep.get(2);
Reponse reponseD = listeRep.get(3);
jButtonA.setText(reponseA.getReponse());
jButtonB.setText(reponseB.getReponse());
jButtonC.setText(reponseC.getReponse());
jButtonD.setText(reponseD.getReponse());
jLabelScore.setText("Score : " + quizz.getScore());
int a = quizz.getCompteurQ()+1;
jLabelComptQ.setText("Question n°" + a);
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setTitle("Jeu en Cours - StudenTest");
setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
setMaximumSize(new java.awt.Dimension(800, 600));
setMinimumSize(new java.awt.Dimension(800, 600));
setResizable(false);
setSize(new java.awt.Dimension(800, 600));
getContentPane().setLayout(null);
getContentPane().removeAll();
getContentPane().add(jLabelScore);
jLabelScore.setBounds(0, 20, 250, 250);
jLabelScore.setVerticalAlignment(SwingConstants.TOP);
getContentPane().add(jLabelComptQ);
jLabelComptQ.setBounds(0, 0, 250, 250);
jLabelComptQ.setVerticalAlignment(SwingConstants.TOP);
jButtonA.addMouseListener(new java.awt.event.MouseAdapter() {
@Override
public void mouseClicked(java.awt.event.MouseEvent evt) {
if (reponseA.getVerif()) {
quizz.win();
} else {
quizz.lose();
}
quizz.endOfTurn();
if (quizz.getCompteurQ() >= 5) {
Component frame = null;
JOptionPane.showMessageDialog(frame, "Score Final :" + quizz.getScore() + "\nBien Joué");
initComponents();
} else {
initGame(quizz);
}
}
});
getContentPane().add(jButtonA);
jButtonA.setBounds(425, 325, 150, 75);
jButtonB.addMouseListener(new java.awt.event.MouseAdapter() {
@Override
public void mouseClicked(java.awt.event.MouseEvent evt) {
if (reponseB.getVerif()) {
quizz.win();
} else {
quizz.lose();
}
quizz.endOfTurn();
if (quizz.getCompteurQ() >= 5) {
Component frame = null;
JOptionPane.showMessageDialog(frame, "Score Final :" + quizz.getScore() + "\nBien Joué");
initComponents();
} else {
initGame(quizz);
}
}
});
getContentPane().add(jButtonB);
jButtonB.setBounds(225, 325, 150, 75);
jButtonC.addMouseListener(new java.awt.event.MouseAdapter() {
@Override
public void mouseClicked(java.awt.event.MouseEvent evt) {
if (reponseC.getVerif()) {
quizz.win();
} else {
quizz.lose();
}
quizz.endOfTurn();
if (quizz.getCompteurQ() >= 5) {
Component frame = null;
JOptionPane.showMessageDialog(frame, "Score Final :" + quizz.getScore() + "\nBien Joué");
initComponents();
} else {
initGame(quizz);
}
}
});
getContentPane().add(jButtonC);
jButtonC.setBounds(425, 450, 150, 75);
jButtonD.addMouseListener(new java.awt.event.MouseAdapter() {
@Override
public void mouseClicked(java.awt.event.MouseEvent evt) {
if (reponseD.getVerif()) {
quizz.win();
} else {
quizz.lose();
}
quizz.endOfTurn();
if (quizz.getCompteurQ() >= 5) {
Component frame = null;
JOptionPane.showMessageDialog(frame, "Score Final :" + quizz.getScore() + "\nBien Joué");
initComponents();
} else {
initGame(quizz);
}
}
});
getContentPane().add(jButtonD);
jButtonD.setBounds(225, 450, 150, 75);
pack();
setLocationRelativeTo(null);
}
Sie können sehen, dass AntwortA/B/C/D und jButtonA/B/C/D der gleichen Anweisung folgen. Ich überprüfte die Stunde, die ich hatte, aber ich fand keine Hilfe für dieses Problem, auch wenn es mir sehr geholfen hat. Ich habe versucht, Online-Forschung zu machen, aber es war nicht verwandt oder die Lösung nicht ... Ich hoffe, Sie haben verstanden, was ich gesagt habe (ich bin nicht fließend Englisch).
Ps: Ich habe den ganzen Code der Methode, aber wenn nötig, kann ich den Teil entfernen, die nicht vollständig notwendig sind.
ok Ich denke ich sehe was du redest, ich werde es jetzt richtig versuchen. Ich werde zurückkommen, wenn das funktioniert oder nicht. Danke Mann –