Last week I was meant to do this Java exam based on this code. Our tutor insists that this code works but I showed it another software developer and he insisted that the code sucks. I didnt go through with the exam as I feel Im not trained properly to do it.
So the code you see here is a J Applet form and copied and pasted below that is a Class.
Ive went over it 5 times, can you give me advice of where it all went wrong, was it Netbeans?
Hope you can help a newb out. Thanks.
(And let me stress to you this is the code our tutor came up and told to practice on so I think I hadnt a hope in hell of passing.)
import javax.swing.ImageIcon;
import javax.swing.JOptionPane;
public class GuessTheWord extends javax.swing.JApplet {
Hangman GTW_Object = new Hangman ();
boolean blnKeyPadUnLock;
@Override
public void init() {
resize(600,500);
try {
java.awt.EventQueue.invokeAndWait(new Runnable() {
public void run() {
initComponents();
}
});
} catch (Exception ex) {
ex.printStackTrace();
}
}
private void enterNewLetter (char newLetter){
if(blnKeyPadUnLock){
txtGuessTheWord.setText(new String (GTW_Object.enterNewLetter(newLetter)));
txtGuessesRemaining.setText (String.valueOf (GTW_Object.getRemainingLives()));
}
UpdateImage();
if(GTW_Object.getFoundWord() && GTW_Object.getRemainingLives() >0){
JOptionPane.showMessageDialog(null,"YOU WIN");
}
else if (GTW_Object.getFoundWord() && GTW_Object.getRemainingLives () ==0)
JOptionPane.showMessageDialog(null, "YOU LOSE, THE WORD WAS:"+ GTW_Object.getGeneratedWord());
}
private void UpdateImage() {
switch (GTW_Object.getRemainingLives()) {
case 0 :lblImage.setIcon (new ImageIcon ("Hangman0.jpg"));break;
case 1 :lblImage.setIcon (new ImageIcon ("Hangman0.jpg"));break;
case 2 :lblImage.setIcon (new ImageIcon ("Hangman0.jpg"));break;
case 3 :lblImage.setIcon (new ImageIcon ("Hangman0.jpg"));break;
case 4 :lblImage.setIcon (new ImageIcon ("Hangman0.jpg"));break;
case 5 :lblImage.setIcon (new ImageIcon ("Hangman0.jpg"));break;
case 6 :lblImage.setIcon (new ImageIcon ("Hangman0.jpg"));break;
case 7 :lblImage.setIcon (new ImageIcon ("Hangman0.jpg"));break;
case 8 :lblImage.setIcon (new ImageIcon ("Hangman0.jpg"));break;
}
lblImage.setVisible(true);
}
@SuppressWarnings("unchecked")
private void initComponents() {
btnA = new java.awt.Button();
btnB = new java.awt.Button();
btnC = new java.awt.Button();
btnD = new java.awt.Button();
btnE = new java.awt.Button();
btnF = new java.awt.Button();
btnG = new java.awt.Button();
btnH = new java.awt.Button();
btnI = new java.awt.Button();
btnJ = new java.awt.Button();
btnK = new java.awt.Button();
btnL = new java.awt.Button();
btnM = new java.awt.Button();
btnN = new java.awt.Button();
btnO = new java.awt.Button();
btnP = new java.awt.Button();
btnQ = new java.awt.Button();
btnR = new java.awt.Button();
btnS = new java.awt.Button();
btnT = new java.awt.Button();
btnU = new java.awt.Button();
btnV = new java.awt.Button();
btnW = new java.awt.Button();
btnX = new java.awt.Button();
btnY = new java.awt.Button();
btnZ = new java.awt.Button();
btnStart = new java.awt.Button();
btnAnswer = new java.awt.Button();
txtGuessTheWordTextValueChanged = new java.awt.TextField();
txtGuessesRemainingTextValueChanged = new java.awt.TextField();
setBackground(new java.awt.Color(204, 204, 204));
getContentPane().setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());
btnA.setLabel("A");
btnA.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnAActionPerformed(evt);
}
});
getContentPane().add(btnA, new org.netbeans.lib.awtextra.AbsoluteConstraints(60, 200, 50, 40));
btnB.setLabel("B");
btnB.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnBActionPerformed(evt);
}
});
getContentPane().add(btnB, new org.netbeans.lib.awtextra.AbsoluteConstraints(130, 200, 50, 40));
btnC.setLabel("C");
btnC.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnCActionPerformed(evt);
}
});
getContentPane().add(btnC, new org.netbeans.lib.awtextra.AbsoluteConstraints(190, 200, 50, 40));
btnD.setLabel("D");
btnD.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnDActionPerformed(evt);
}
});
getContentPane().add(btnD, new org.netbeans.lib.awtextra.AbsoluteConstraints(250, 200, 50, 40));
btnE.setActionCommand("button E");
btnE.setLabel("E");
btnE.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnEActionPerformed(evt);
}
});
getContentPane().add(btnE, new org.netbeans.lib.awtextra.AbsoluteConstraints(320, 200, 50, 40));
btnF.setLabel("F");
btnF.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnFActionPerformed(evt);
}
});
getContentPane().add(btnF, new org.netbeans.lib.awtextra.AbsoluteConstraints(390, 200, 50, 40));
btnG.setLabel("G");
btnG.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnGActionPerformed(evt);
}
});
getContentPane().add(btnG, new org.netbeans.lib.awtextra.AbsoluteConstraints(460, 200, 50, 40));
btnH.setLabel("H");
btnH.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnHActionPerformed(evt);
}
});
getContentPane().add(btnH, new org.netbeans.lib.awtextra.AbsoluteConstraints(60, 270, 50, 40));
btnI.setLabel("I");
btnI.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnIActionPerformed(evt);
}
});
getContentPane().add(btnI, new org.netbeans.lib.awtextra.AbsoluteConstraints(130, 270, 50, 40));
btnJ.setLabel("J");
btnJ.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnJActionPerformed(evt);
}
});
getContentPane().add(btnJ, new org.netbeans.lib.awtextra.AbsoluteConstraints(190, 270, 50, 40));
btnK.setLabel("K");
btnK.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnKActionPerformed(evt);
}
});
getContentPane().add(btnK, new org.netbeans.lib.awtextra.AbsoluteConstraints(260, 270, 50, 40));
btnL.setLabel("L");
btnL.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnLActionPerformed(evt);
}
});
getContentPane().add(btnL, new org.netbeans.lib.awtextra.AbsoluteConstraints(320, 274, 50, 40));
btnM.setLabel("M");
btnM.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnMActionPerformed(evt);
}
});
getContentPane().add(btnM, new org.netbeans.lib.awtextra.AbsoluteConstraints(390, 274, 50, 40));
btnN.setLabel("N");
btnN.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnNActionPerformed(evt);
}
});
getContentPane().add(btnN, new org.netbeans.lib.awtextra.AbsoluteConstraints(460, 270, 50, 40));
btnO.setLabel("O");
btnO.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnOActionPerformed(evt);
}
});
getContentPane().add(btnO, new org.netbeans.lib.awtextra.AbsoluteConstraints(60, 350, 50, 40));
btnP.setLabel("P");
btnP.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnPActionPerformed(evt);
}
});
getContentPane().add(btnP, new org.netbeans.lib.awtextra.AbsoluteConstraints(130, 350, 50, 40));
btnQ.setLabel("Q");
btnQ.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnQActionPerformed(evt);
}
});
getContentPane().add(btnQ, new org.netbeans.lib.awtextra.AbsoluteConstraints(200, 350, 50, 40));
btnR.setLabel("R");
btnR.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnRActionPerformed(evt);
}
});
getContentPane().add(btnR, new org.netbeans.lib.awtextra.AbsoluteConstraints(260, 350, 50, 40));
btnS.setLabel("S");
btnS.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnSActionPerformed(evt);
}
});
getContentPane().add(btnS, new org.netbeans.lib.awtextra.AbsoluteConstraints(320, 350, 60, 40));
btnT.setLabel("T");
btnT.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnTActionPerformed(evt);
}
});
getContentPane().add(btnT, new org.netbeans.lib.awtextra.AbsoluteConstraints(390, 350, 50, 40));
btnU.setLabel("U");
btnU.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnUActionPerformed(evt);
}
});
getContentPane().add(btnU, new org.netbeans.lib.awtextra.AbsoluteConstraints(460, 350, 50, 40));
btnV.setLabel("V");
btnV.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnVActionPerformed(evt);
}
});
getContentPane().add(btnV, new org.netbeans.lib.awtextra.AbsoluteConstraints(60, 410, 60, 40));
btnW.setLabel("W");
btnW.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnWActionPerformed(evt);
}
});
getContentPane().add(btnW, new org.netbeans.lib.awtextra.AbsoluteConstraints(130, 410, 50, 40));
btnX.setLabel("X");
btnX.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnXActionPerformed(evt);
}
});
getContentPane().add(btnX, new org.netbeans.lib.awtextra.AbsoluteConstraints(200, 410, 50, 40));
btnY.setLabel("Y");
btnY.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnYActionPerformed(evt);
}
});
getContentPane().add(btnY, new org.netbeans.lib.awtextra.AbsoluteConstraints(260, 410, 50, 40));
btnZ.setLabel("Z");
btnZ.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnZActionPerformed(evt);
}
});
getContentPane().add(btnZ, new org.netbeans.lib.awtextra.AbsoluteConstraints(323, 410, 50, 40));
btnStart.setLabel("Start");
btnStart.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnStartActionPerformed(evt);
}
});
getContentPane().add(btnStart, new org.netbeans.lib.awtextra.AbsoluteConstraints(390, 414, 50, 40));
btnAnswer.setLabel("Answer");
btnAnswer.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnAnswerActionPerformed(evt);
}
});
getContentPane().add(btnAnswer, new org.netbeans.lib.awtextra.AbsoluteConstraints(460, 414, -1, 40));
txtGuessTheWordTextValueChanged.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
txtGuessTheWordTextValueChangedActionPerformed(evt);
}
});
getContentPane().add(txtGuessTheWordTextValueChanged, new org.netbeans.lib.awtextra.AbsoluteConstraints(340, 90, 220, 40));
txtGuessesRemainingTextValueChanged.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
txtGuessesRemainingTextValueChangedActionPerformed(evt);
}
});
getContentPane().add(txtGuessesRemainingTextValueChanged, new org.netbeans.lib.awtextra.AbsoluteConstraints(440, 150, 110, -1));
}
private void btnAActionPerformed(java.awt.event.ActionEvent evt) {
enterNewLetter ('A');
}
private void btnBActionPerformed(java.awt.event.ActionEvent evt) {
enterNewLetter ('B');
}
private void btnCActionPerformed(java.awt.event.ActionEvent evt) {
enterNewLetter ('C');
}
private void btnDActionPerformed(java.awt.event.ActionEvent evt) {
enterNewLetter ('D');
}
private void btnEActionPerformed(java.awt.event.ActionEvent evt) {
enterNewLetter ('E');
}
private void btnFActionPerformed(java.awt.event.ActionEvent evt) {
enterNewLetter ('F');
}
private void btnGActionPerformed(java.awt.event.ActionEvent evt) {
enterNewLetter ('G');
}
private void btnHActionPerformed(java.awt.event.ActionEvent evt) {
enterNewLetter ('H');
}
private void btnIActionPerformed(java.awt.event.ActionEvent evt) {
enterNewLetter ('I');
}
private void btnJActionPerformed(java.awt.event.ActionEvent evt) {
enterNewLetter ('J');
}
private void btnKActionPerformed(java.awt.event.ActionEvent evt) {
enterNewLetter ('K');
}
private void btnLActionPerformed(java.awt.event.ActionEvent evt) {
enterNewLetter ('L');
}
private void btnMActionPerformed(java.awt.event.ActionEvent evt) {
enterNewLetter ('M');
}
private void btnNActionPerformed(java.awt.event.ActionEvent evt) {
enterNewLetter ('N');
}
private void btnOActionPerformed(java.awt.event.ActionEvent evt) {
enterNewLetter ('O');
}
private void btnPActionPerformed(java.awt.event.ActionEvent evt) {
enterNewLetter ('P');
}
private void btnQActionPerformed(java.awt.event.ActionEvent evt) {
enterNewLetter ('Q');
}
private void btnRActionPerformed(java.awt.event.ActionEvent evt) {
enterNewLetter ('R');
}
private void btnSActionPerformed(java.awt.event.ActionEvent evt) {
enterNewLetter ('S');
}
private void btnTActionPerformed(java.awt.event.ActionEvent evt) {
enterNewLetter ('T');
}
private void btnUActionPerformed(java.awt.event.ActionEvent evt) {
enterNewLetter ('U');
}
private void btnVActionPerformed(java.awt.event.ActionEvent evt) {
enterNewLetter ('V');
}
private void btnWActionPerformed(java.awt.event.ActionEvent evt) {
enterNewLetter ('W');
}
private void btnXActionPerformed(java.awt.event.ActionEvent evt) {
enterNewLetter ('X');
}
private void btnYActionPerformed(java.awt.event.ActionEvent evt) {
enterNewLetter ('Y');
}
private void btnZActionPerformed(java.awt.event.ActionEvent evt) {
enterNewLetter ('Z');
}
private void btnStartActionPerformed(java.awt.event.ActionEvent evt) {
blnKeyPadUnLock = true;
GTW_Object.getGeneratedWord();
UpdateImage();
txtGuessTheWord.setText(GTW_Object.getMaskedWord());
txtGuessesRemaining.setText(String.valueOf)(GTW_Object.getRemainingLives()));
}
private void btnAnswerActionPerformed(java.awt.event.ActionEvent evt) {
blnKeyPadUnLock = true;
UpdateImage();
txtGuessTheWord.setText(GTW_Object.getGeneratedWord());
txtGuessesRemaining.setText("0");
}
private void txtGuessTheWordTextValueChangedActionPerformed(java.awt.event.ActionEvent evt) {
if (txtGuessTheWord.getText().length()>24)
txtGuessTheWord.setText(txtGuessTheWord.getText().substring(0,24));
}
private void txtGuessesRemainingTextValueChangedActionPerformed(java.awt.event.ActionEvent evt) {
if (txtGuessesRemaining.getText().lenght()>0)
txtGuessesRemaining.setText(txtGuessesRemaining.getText().substring(0,3))
}
private java.awt.Button btnA;
private java.awt.Button btnAnswer;
private java.awt.Button btnB;
private java.awt.Button btnC;
private java.awt.Button btnD;
private java.awt.Button btnE;
private java.awt.Button btnF;
private java.awt.Button btnG;
private java.awt.Button btnH;
private java.awt.Button btnI;
private java.awt.Button btnJ;
private java.awt.Button btnK;
private java.awt.Button btnL;
private java.awt.Button btnM;
private java.awt.Button btnN;
private java.awt.Button btnO;
private java.awt.Button btnP;
private java.awt.Button btnQ;
private java.awt.Button btnR;
private java.awt.Button btnS;
private java.awt.Button btnStart;
private java.awt.Button btnT;
private java.awt.Button btnU;
private java.awt.Button btnV;
private java.awt.Button btnW;
private java.awt.Button btnX;
private java.awt.Button btnY;
private java.awt.Button btnZ;
private java.awt.TextField txtGuessTheWordTextValueChanged;
private java.awt.TextField txtGuessesRemainingTextValueChanged;
}
_____________________________________________________________________________________
CLASS
import java.util.ArrayList;
import java.util.Collections;
public class Hangman {
public ArrayList<String>ListOfwords = new ArrayList<>();
private final ArrayList <Character> ListOfEnteredLetters = new ArrayList<>();
private int intRemainingLives;
private boolean blnlifeLost;
private boolean blnFoundWord;
private String GeneratedWord;
private StringBuilder sbMaskedWord;
public Hangman () {
ListOfwords.add("JAVA");
ListOfwords.add("TUESDAY");
ListOfwords.add("WINDOWS");
ListOfwords.add("NOKIA");
ListOfwords.add("MARKER");
}
@SuppressWarnings("empty-statement")
public void generatedNewWord() {
Collections.shuffle (ListOfwords);
GeneratedWord = ListOfwords.get(0);
sbMaskedWord = new StringBuilder(GeneratedWord);
ListOfEnteredLetters.clear();
intRemainingLives = 8;
blnFoundWord=false;
for (int i = 0, i < sbMaskedWord.length(); i ++) {
sbMaskedWord.setCharAt(i,'*');
}
}
public int getRemainingLives(){
return intRemainingLives;
}
public String getMaskedWord() {
return sbMaskedWord.toString();
}
public String getGeneratedWord() {
return GeneratedWord;
}
public boolean getFoundWord() {
return blnFoundWord;
}
public String enterNewLetter (char chrLetter) {
blnlifeLost = true;
if(! ListOfEnteredLetters.contains(chrLetter)) {
ListOfEnteredLetters.add(chrLetter);
System.out.println(ListOfEnteredLetters);
for (int i = 0; i < GeneratedWord.length(); i++) {
if (GeneratedWord.charAt(i)== chrLetter) {
sbMaskedWord.setCharAt(i,chrLetter);
blnlifeLost=false;
}
}
}
else
blnlifeLost=false;
if (blnlifeLost == true ){
intRemainingLives--;
}
if (GeneratedWord.equals(sbMaskedWord.toString()))
blnFoundWord = true;
return sbMaskedWord.toString();
}
}
What I have tried:
Everything! about 5 times. Even starting in JFrame and converting to JApplet Form.