In Java, Write an application called Scramble that has a GUI to play a game of w
ID: 3818391 • Letter: I
Question
In Java,
Write an application called Scramble that has a GUI to play a game of word anagrams. Create two arrays of strings. The first array will hold words, and the second will hold scrambled versions of those words. Your Java code can initialize these arrays directly with the words. Display the scrambled version of the word in a label. The user will enter a guess for the word in a text field and press a Check button. You should see whether the guess is correct. If it is not correct, change the guess in the text field to Sorry, that is incorrect. Please try again. If the guess is correct, change it to That is correct. Here is a new word to try and display a new scramble. Also provide a Give Up button. If it is pressed, display the unscrambled word and provide a new scrambled word.Explanation / Answer
import java.util.Random;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class Scramble extends javax.swing.JFrame {
private javax.swing.JButton checkButton;
private javax.swing.JButton skipButton;
private javax.swing.JLabel scrambleLable;
private javax.swing.JLabel resultLable;
private javax.swing.JLabel newScramble;
private javax.swing.JTextField jTextField1;
int i = 0;
String A[] = { "pearl", "rich", "shift", "print", "control", "waves", "audio", "alter", "space", "aqua" };
String B[] = { "laerp", "hicr", "thisf", "nript", "lontrco", "swvea", "iudao", "eltar", "psaec", "auqa" };
public Scramble() {
initComponents();
scrambleLable.setText(B[i]);
}
private void initComponents() {
super.setTitle("Scramble Game");
scrambleLable = new javax.swing.JLabel();
jTextField1 = new javax.swing.JTextField();
checkButton = new javax.swing.JButton();
skipButton = new javax.swing.JButton();
resultLable = new javax.swing.JLabel();
newScramble = new javax.swing.JLabel();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
scrambleLable.setFont(new java.awt.Font("Tahoma", 2, 11)); // NOI18N
scrambleLable.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
scrambleLable.setText("scramble");
scrambleLable.setToolTipText("");
scrambleLable.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
scrambleLable.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
jTextField1.setHorizontalAlignment(javax.swing.JTextField.CENTER);
jTextField1.setToolTipText("Guess");
jTextField1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jTextField1ActionPerformed(evt);
}
});
checkButton.setText("Check");
checkButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
checkButtonActionPerformed(evt);
}
});
skipButton.setText("Give Up");
skipButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
skipButtonActionPerformed(evt);
}
});
resultLable.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
resultLable.setText("Result");
newScramble.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
newScramble.setText("Here is Your Scrambled Word.");
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup().addContainerGap().addGroup(layout
.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup(
javax.swing.GroupLayout.Alignment.TRAILING, layout
.createSequentialGroup().addGap(0, 155, Short.MAX_VALUE).addGroup(layout
.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING,
false)
.addComponent(skipButton, javax.swing.GroupLayout.DEFAULT_SIZE,
82, Short.MAX_VALUE)
.addComponent(checkButton, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jTextField1).addComponent(scrambleLable,
javax.swing.GroupLayout.Alignment.LEADING,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addGap(153, 153, 153))
.addComponent(resultLable, javax.swing.GroupLayout.Alignment.TRAILING,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE)))
.addComponent(newScramble, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE));
layout.setVerticalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup().addGap(24, 24, 24).addComponent(newScramble)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(scrambleLable).addGap(26, 26, 26)
.addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18).addComponent(checkButton)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 28, Short.MAX_VALUE)
.addComponent(resultLable).addGap(27, 27, 27).addComponent(skipButton).addGap(58, 58, 58)));
pack();
}
private void checkButtonActionPerformed(java.awt.event.ActionEvent evt) {
String guess = jTextField1.getText();
if (guess.equals(A[i])) {
resultLable.setText("'" + guess + "' is a correct Answer");
i++;
newScramble.setText("Here is your New Scrambled Word..");
scrambleLable.setText(B[i]);
} else {
resultLable.setText("'" + guess + "' is a Wrong Answer");
}
}
private void jTextField1ActionPerformed(java.awt.event.ActionEvent evt) {
}
private void skipButtonActionPerformed(java.awt.event.ActionEvent evt) {
newScramble.setText("Here is your New Scrambled Word..");
resultLable.setText("'" + A[i] + "' is a correct Answer for '" + B[i] + "'");
i++;
scrambleLable.setText(B[i]);
}
public static void main(String args[]) {
//Random r = new Random();
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new Scramble().setVisible(true);
}
});
}
// public static String scramble( Random random, String word )
// {
//
// char a[] = word.toCharArray();
//
//
// for( int i=0 ; i<a.length-1 ; i++ )
// {
// int j = random.nextInt(a.length-1);
//
// char temp = a[i]; a[i] = a[j]; a[j] = temp;
// }
//
// return new String( a );
// }
}
since you mentioned both arrays can be initialised in my answer, I did the same but still Ihave mentioned scramble function commented use it, you can change deesirable width at initComponents()
let me know if correct or not .. hope this helps
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.