Note that there are some explanatory texts on larger screens.

plurals
  1. POJava Hangman - How to assign letter to JButton when clicked?
    primarykey
    data
    text
    <p>I have made a basic hangman game on Netbeans, and the way it works is a user clicks one of the 26 buttons (one for each letter of the alphabet) and that letter is tested in the word. The main problem I'm having is getting the letter to be tested.</p> <pre><code> //array holding all buttons JButton[] alphabet = {AButton, BButton, CButton, DButton, EButton, FButton, GButton, HButton, IButton, JButton, KButton, LButton, MButton, NButton, OButton, PButton, QButton, RButton, SButton, TButton, UButton, VButton, WButton, XButton, YButton, ZButton}; //getting the current letter(need something in place of the 0) String currentLetter = (alphabet[0].getLabel()); //replace underscores with letters as they are guessed for (int i = 0; i &lt; 1; i++) { secretWord = secretWord + currentLetter.charAt(0); foundWord = words[randValue].replaceAll("[^" + secretWord + "]", "_ "); } </code></pre> <p>I read somewhere that using a button array is what I had to do, so I put it in but it didn't work. Also, I read that an ActionListener was needed for the program to read what letter it is. Previous tries I have used were:</p> <pre><code>currentLetter = AButton.getText(); currentLetter = AButton.getLabel(); </code></pre> <p>but sadly to no avail. So keep in mind that I am using Netbeans and I'm new-ish to Java, so no big elaborate hard stuff, keep it simple. Thanks:)</p> <p>EDIT:</p> <pre><code> private void AButtonActionPerformed(java.awt.event.ActionEvent evt) { DoButton.doClick(); } private void DoButtonActionPerformed(java.awt.event.ActionEvent evt) { JButton button = (JButton) evt.getSource(); String currentLetter = button.getText(); //replace underscores with letters as they are guessed for (int i = 0; i &lt; 1; i++) { secretWord = secretWord + currentLetter.charAt(0); foundWord = words[0].replaceAll("[^" + secretWord + "]", "_ "); } } </code></pre> <p>Full Code:</p> <pre><code> import java.awt.Color; import java.awt.Font; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.Random; import javax.swing.JButton; import javax.swing.JOptionPane; import javax.swing.UIManager; import javax.swing.plaf.FontUIResource; public class MainFrame extends javax.swing.JFrame { public MainFrame() { initComponents(); } static String secretWord = ""; StringBuilder mainWord = new StringBuilder(); String[] words = {"technology", "computer", "camera", "graphic", "digital", "media", "technician", "photography", "troubleshoot", "pixels", "application", "download"}; Random r = new Random(); int randValue = r.nextInt(11)+1; String guessWord = words[0];//words[randValue]; int errors = 0; public static int wins = 0, losses = 0; String foundWord = null; String currentLetter; private void RestartButtonActionPerformed(java.awt.event.ActionEvent evt) { //restart game DirectionsFrame DFrame = new DirectionsFrame(); DFrame.setVisible(true); setVisible(false); MainFrame MFrame = new MainFrame(); MFrame.dispose(); secretWord = ""; foundWord = null; DirectionsFrame.WinsLabel.setText(null); DirectionsFrame.LossesLabel.setText(null); } private void GetButtonActionPerformed(java.awt.event.ActionEvent evt) { for (int i = 0; i &lt; guessWord.length(); i++) { mainWord.append("_ "); } String SetMain = mainWord.toString(); mainWord.append(secretWord); WordLabel.setText(SetMain); GetButton.setEnabled(false); AButton.setEnabled(true);BButton.setEnabled(true);CButton.setEnabled (true);DButton.setEnabled(true);EButton.setEnabled(true); FButton.setEnabled(true);GButton.setEnabled(true);HButton.setEnabled (true);IButton.setEnabled(true);JButton.setEnabled(true); KButton.setEnabled(true);LButton.setEnabled(true);MButton.setEnabled(true);NButton.setEnabled(true);OButton.setEnabled(true); PButton.setEnabled(true);QButton.setEnabled(true);RButton.setEnabled(true);SButton.setEnabled(true);TButton.setEnabled(true); UButton.setEnabled(true);VButton.setEnabled(true);WButton.setEnabled(true);XButton.setEnabled(true);YButton.setEnabled(true); ZButton.setEnabled(true); } private void ExitButtonActionPerformed(java.awt.event.ActionEvent evt) { // Exit the program System.exit(0); } private void AButtonActionPerformed(java.awt.event.ActionEvent evt) { DoButton.doClick(); } private void BButtonActionPerformed(java.awt.event.ActionEvent evt) { DoButton.doClick(); } private void CButtonActionPerformed(java.awt.event.ActionEvent evt) { DoButton.doClick(); } private void DButtonActionPerformed(java.awt.event.ActionEvent evt) { DoButton.doClick(); } private void EButtonActionPerformed(java.awt.event.ActionEvent evt) { DoButton.doClick(); } private void FButtonActionPerformed(java.awt.event.ActionEvent evt) { DoButton.doClick(); } private void GButtonActionPerformed(java.awt.event.ActionEvent evt) { DoButton.doClick(); } private void HButtonActionPerformed(java.awt.event.ActionEvent evt) { DoButton.doClick(); } private void IButtonActionPerformed(java.awt.event.ActionEvent evt) { DoButton.doClick(); } private void JButtonActionPerformed(java.awt.event.ActionEvent evt) { DoButton.doClick(); } private void KButtonActionPerformed(java.awt.event.ActionEvent evt) { DoButton.doClick(); } private void LButtonActionPerformed(java.awt.event.ActionEvent evt) { DoButton.doClick(); } private void MButtonActionPerformed(java.awt.event.ActionEvent evt) { DoButton.doClick(); } private void NButtonActionPerformed(java.awt.event.ActionEvent evt) { DoButton.doClick(); } private void OButtonActionPerformed(java.awt.event.ActionEvent evt) { DoButton.doClick(); } private void PButtonActionPerformed(java.awt.event.ActionEvent evt) { DoButton.doClick(); } private void QButtonActionPerformed(java.awt.event.ActionEvent evt) { DoButton.doClick(); } private void RButtonActionPerformed(java.awt.event.ActionEvent evt) { DoButton.doClick(); } private void SButtonActionPerformed(java.awt.event.ActionEvent evt) { DoButton.doClick(); } private void TButtonActionPerformed(java.awt.event.ActionEvent evt) { DoButton.doClick(); } private void UButtonActionPerformed(java.awt.event.ActionEvent evt) { DoButton.doClick(); } private void VButtonActionPerformed(java.awt.event.ActionEvent evt) { DoButton.doClick(); } private void WButtonActionPerformed(java.awt.event.ActionEvent evt) { DoButton.doClick(); } private void XButtonActionPerformed(java.awt.event.ActionEvent evt) { DoButton.doClick(); } private void YButtonActionPerformed(java.awt.event.ActionEvent evt) { DoButton.doClick(); } private void ZButtonActionPerformed(java.awt.event.ActionEvent evt) { DoButton.doClick(); } private void DoButtonActionPerformed(java.awt.event.ActionEvent evt) { JButton button = (JButton) evt.getSource(); String currentLetter = button.getText(); //replace underscores with letters as they are guessed do { for (int i = 0; i &lt; 1; i++) { secretWord = secretWord + currentLetter.charAt(0); foundWord = words[0].replaceAll("[^" + secretWord + "]", "_ "); //if letter isn't in word if (guessWord.indexOf(currentLetter) == -1) { JOptionPane.showMessageDialog(null, "Sorry, that wasn't in the word."); errors++; if (errors == 1) { Hangman0.setVisible(false); } if (errors == 2) { Hangman1.setVisible(false); } if (errors == 3) { Hangman2.setVisible(false); } if (errors == 4) { Hangman3.setVisible(false); } if (errors == 5) { Hangman4.setVisible(false); } if (errors == 6) { Hangman5.setVisible(false); } if (errors == 7) { Hangman6.setVisible(false); } if (errors == 8) { Hangman7.setVisible(false); } if (errors == 9) { Hangman8.setVisible(false); } if (errors == 10) { Hangman9.setVisible(false); JOptionPane.showMessageDialog(null, "You lost! The word was: " + guessWord); losses++; DirectionsFrame DFrame = new DirectionsFrame(); DFrame.setVisible(true); setVisible(false); MainFrame MFrame = new MainFrame(); MFrame.dispose(); secretWord = ""; foundWord = null; String strLosses = Integer.toString(losses); String strWin = Integer.toString(wins); DirectionsFrame.WinsLabel.setText(strWin); DirectionsFrame.LossesLabel.setText(strLosses); } } } WordLabel.setText(foundWord.toUpperCase()); } while (foundWord == null); if (foundWord.equalsIgnoreCase(guessWord)) { JOptionPane.showMessageDialog(null, "Yay!"); wins++; DirectionsFrame DFrame = new DirectionsFrame(); DFrame.setVisible(true); setVisible(false); MainFrame MFrame = new MainFrame(); MFrame.dispose(); secretWord = ""; foundWord = null; String strWin = Integer.toString(wins); String strLosses = Integer.toString(losses); DirectionsFrame.WinsLabel.setText(strWin); DirectionsFrame.LossesLabel.setText(strLosses); } } </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload