SlideShare a Scribd company logo
Need help coding MorseCode in Java:
Create Class MorseCodeClient. This represents a Client that allows a user communicate with a
server across a network. The server saves the message and then relays the message to another
client This is a JFrame application and should extend JFrame and Implement Runnable. The
client application should allow the user to type English-language phrases in a JTextArea. When
the user sends the message, the client application encodes the text into Morse code and sends the
coded message through the server to the other client. Create class MorseCodeClientTest, this is a
test class for morse code client and uses the main method to created new instance of
MorseCodeClient.
Solution
package MorseCode;
import java.util.ArrayList;
public class MorseCodeConverter extends javax.swing.JFrame {
/**
* Creates new form MorseCodeConverter
*/
public MorseCodeConverter() {
initComponents();
}
@SuppressWarnings("unchecked")
// //GEN-BEGIN:initComponents
private void initComponents() {
mainWindowContainer = new javax.swing.JPanel();
userSentence = new javax.swing.JTextField();
inputLabel = new javax.swing.JLabel();
outputLabel = new javax.swing.JLabel();
inputConfirmButton = new javax.swing.JButton();
outputField = new javax.swing.JTextField();
title = new javax.swing.JLabel();
javax.swing.GroupLayout mainWindowContainerLayout = new
javax.swing.GroupLayout(mainWindowContainer);
mainWindowContainer.setLayout(mainWindowContainerLayout);
mainWindowContainerLayout.setHorizontalGroup(
mainWindowContainerLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEAD
ING)
.addGap(0, 100, Short.MAX_VALUE)
);
mainWindowContainerLayout.setVerticalGroup(
mainWindowContainerLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEAD
ING)
.addGap(0, 100, Short.MAX_VALUE)
);
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setBackground(new java.awt.Color(204, 204, 255));
userSentence.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
userSentenceActionPerformed(evt);
}
});
inputLabel.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
inputLabel.setText("Enter your sentence here");
outputLabel.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
outputLabel.setText("This is your sentence in Morse Code");
outputLabel.setToolTipText("");
inputConfirmButton.setText("OK");
inputConfirmButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
inputConfirmButtonActionPerformed(evt);
}
});
outputField.setFont(new java.awt.Font("Tahoma", 0, 16)); // NOI18N
title.setFont(new java.awt.Font("Simplified Arabic", 0, 18)); // NOI18N
title.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
title.setText("Morse Code Converter");
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(171, 171, 171)
.addComponent(inputConfirmButton))
.addGroup(layout.createSequentialGroup()
.addGap(88, 88, 88)
.addComponent(inputLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 148,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(layout.createSequentialGroup()
.addGap(86, 86, 86)
.addComponent(outputLabel, javax.swing.GroupLayout.PREFERRED_SIZE,
212, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(layout.createSequentialGroup()
.addGap(20, 20, 20)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addComponent(userSentence, javax.swing.GroupLayout.DEFAULT_SIZE,
349, Short.MAX_VALUE)
.addComponent(title, javax.swing.GroupLayout.PREFERRED_SIZE, 346,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(outputField))))
.addContainerGap(30, Short.MAX_VALUE))
);
layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[]
{inputLabel, outputLabel});
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE)
.addComponent(title, javax.swing.GroupLayout.PREFERRED_SIZE, 26,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(21, 21, 21)
.addComponent(inputLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 14,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(userSentence, javax.swing.GroupLayout.PREFERRED_SIZE, 27,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(inputConfirmButton)
.addGap(31, 31, 31)
.addComponent(outputLabel)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(outputField, javax.swing.GroupLayout.PREFERRED_SIZE, 30,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(44, 44, 44))
);
layout.linkSize(javax.swing.SwingConstants.VERTICAL, new java.awt.Component[]
{outputField, userSentence});
pack();
}// //GEN-END:initComponents
/**
* This method is run when the User enters a sentence; it runs
* when the user hits 'enter'.
*/
private void userSentenceActionPerformed(java.awt.event.ActionEvent evt) {
//GEN- FIRST:event_userSentenceActionPerformed
String[] morseCode = {" ", "--..--", ".-.-.-", "..--..", "-----",
".----", "..---", "...---", "....-", ".....", "-....", "--...",
"---..", "----.", ".-", "-...", "-.-.", "-..", ".", "..-.", "--.",
"....", "..", ".---", "-.-", ".-..", "--", "-.", "---", ".--.",
"--.-", ".-.", "...", "-", "..-", "...-", ".--", "-..-", "-.--",
"--.."};
String english = " ,.?0123456789abcdefghijklmnopqrstuvwxyz";
char[] englishArray = english.toCharArray();
ArrayList holdList = new ArrayList<>();
StringBuilder holdBuilder = new StringBuilder();
String userString = userSentence.getText().toLowerCase();
char[] userArray = userString.toCharArray();
for(int i = 0; i < userArray.length; i++) {
for(int n = 0; n < englishArray.length; n++) {
if(userArray[i] == englishArray[n]) {
holdList.add(n);
}
}
}
for(int i = 0; i < holdList.size(); i++) {
holdBuilder.append(morseCode[holdList.get(i)]);
}
String moCode = holdBuilder.toString();
outputField.setText(moCode);
}//GEN-LAST:event_userSentenceActionPerformed
/**
* This method is run when the user clicks the 'OK' button
* in the GUI. It has the same code as the userSentence method
*/
private void inputConfirmButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-
FIRST:event_inputConfirmButtonActionPerformed
// a string array to hold all of the Morse Code values
String[] morseCode = {" ", "--..--", ".-.-.-", "..--..", "-----",
".----", "..---", "...---", "....-", ".....", "-....", "--...",
"---..", "----.", ".-", "-...", "-.-.", "-..", ".", "..-.", "--.",
"....", "..", ".---", "-.-", ".-..", "--", "-.", "---", ".--.",
"--.-", ".-.", "...", "-", "..-", "...-", ".--", "-..-", "-.--",
"--.."};
// a string of english letter, numbers and punctuation that
// corresponds to the Morse Code list
String english = " ,.?0123456789abcdefghijklmnopqrstuvwxyz";
// turn that english string into an array of characters
// this will allow us to iterate over it
char[] englishArray = english.toCharArray();
// make an ArrayList to hold our index values as we find them.
// also initialize a StringBuilder object that will help us in
// printing out a clean string of morse code values
ArrayList holdList = new ArrayList<>();
StringBuilder holdBuilder = new StringBuilder();
// user input, convert to lowercase for simplicity;
// convert the input to a character array. This will
// allow iteration
String userString = userSentence.getText().toLowerCase();
char[] userArray = userString.toCharArray();
// loop through each character in the userArray, and match
// them up with values in the array of english characters.
// save the index value of the english array
for(int i = 0; i < userArray.length; i++) {
for(int n = 0; n < englishArray.length; n++) {
if(userArray[i] == englishArray[n]) {
holdList.add(n);
}
}
}
// append all morse codes associated
// with the english array indexes to the StringBuilder object.
for(int i = 0; i < holdList.size(); i++) {
holdBuilder.append(morseCode[holdList.get(i)]);
}
// convert that object to a string and print it out.
String moCode = holdBuilder.toString();
outputField.setText(moCode);
}//GEN-LAST:event_inputConfirmButtonActionPerformed
public static void main(String args[]) {
/* Create and display the form */
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new MorseCodeConverter().setVisible(true);
}
});
}
private javax.swing.JButton inputConfirmButton;
private javax.swing.JLabel inputLabel;
private javax.swing.JPanel mainWindowContainer;
private javax.swing.JTextField outputField;
private javax.swing.JLabel outputLabel;
private javax.swing.JLabel title;
private javax.swing.JTextField userSentence;
}

More Related Content

PDF
The Morse code (see Table 6.10 in book) is a common code that is use.pdf
PDF
In Java Write a program that reads an English language phrase and en.pdf
PDF
Advanced Java - Practical File
DOC
PDF
import java.awt.Color;import java.awt.Insets;import java.awt.Con.pdf
PDF
What is the purpose of performing a dark reaction Explain why it is.pdf
PDF
What is a tissue _____ What are some identifying features of merist.pdf
PDF
Tonya and Lydia are two senior nursing students assigned to work in .pdf
The Morse code (see Table 6.10 in book) is a common code that is use.pdf
In Java Write a program that reads an English language phrase and en.pdf
Advanced Java - Practical File
import java.awt.Color;import java.awt.Insets;import java.awt.Con.pdf
What is the purpose of performing a dark reaction Explain why it is.pdf
What is a tissue _____ What are some identifying features of merist.pdf
Tonya and Lydia are two senior nursing students assigned to work in .pdf

More from fastechsrv (20)

PDF
This figure shows the stress-strain curve for a polymer. The followi.pdf
PDF
There are 6 holes in a wall. A mouse is in one hole I dont know wh.pdf
PDF
The identity below was verified incorrectly. In which line was an err.pdf
PDF
The FED is both centralized and decentralized in its structure. .pdf
PDF
The diameter of the Milky Way disc is approximately 9x10^20 meters. .pdf
PDF
The Ad Hoc network shown below (including node Q) is currently operat.pdf
PDF
take the following code and give details of what each line of code i.pdf
PDF
RNA is important for all of the following reasons EXCEPT most RNA .pdf
PDF
Patient A got IV (Intravenous) fluid at the hospital that turned out .pdf
PDF
Novotny et al. The authors of the paper Why are there so many speci.pdf
PDF
Match the description with the appropriate term. Where more than one .pdf
PDF
How should globalization be viewed as a four dimensional concept.pdf
PDF
I want the show the works step by step for Aand B Autism is a seriou.pdf
PDF
If only one strand of the DNA molecule is transcribed for a particul.pdf
PDF
How do each of the factors listed in (1) affect the diffusion of sol.pdf
PDF
find the domain of the function f (x)= 2x3 x8SolutionNumerat.pdf
PDF
Explain a) advantage of dispersing seeds, andexplain b) two (2) neat.pdf
PDF
Discuss the meaning of a tortWhat are the four elements of neglig.pdf
PDF
Describe the example of Darwin’s finches and how adaptive radiati.pdf
PDF
Consider the vector space V=ropf^2 over the set of scalars ropf. Defi.pdf
This figure shows the stress-strain curve for a polymer. The followi.pdf
There are 6 holes in a wall. A mouse is in one hole I dont know wh.pdf
The identity below was verified incorrectly. In which line was an err.pdf
The FED is both centralized and decentralized in its structure. .pdf
The diameter of the Milky Way disc is approximately 9x10^20 meters. .pdf
The Ad Hoc network shown below (including node Q) is currently operat.pdf
take the following code and give details of what each line of code i.pdf
RNA is important for all of the following reasons EXCEPT most RNA .pdf
Patient A got IV (Intravenous) fluid at the hospital that turned out .pdf
Novotny et al. The authors of the paper Why are there so many speci.pdf
Match the description with the appropriate term. Where more than one .pdf
How should globalization be viewed as a four dimensional concept.pdf
I want the show the works step by step for Aand B Autism is a seriou.pdf
If only one strand of the DNA molecule is transcribed for a particul.pdf
How do each of the factors listed in (1) affect the diffusion of sol.pdf
find the domain of the function f (x)= 2x3 x8SolutionNumerat.pdf
Explain a) advantage of dispersing seeds, andexplain b) two (2) neat.pdf
Discuss the meaning of a tortWhat are the four elements of neglig.pdf
Describe the example of Darwin’s finches and how adaptive radiati.pdf
Consider the vector space V=ropf^2 over the set of scalars ropf. Defi.pdf

Recently uploaded (20)

PPTX
Introduction-to-Literarature-and-Literary-Studies-week-Prelim-coverage.pptx
PDF
VCE English Exam - Section C Student Revision Booklet
PDF
2.FourierTransform-ShortQuestionswithAnswers.pdf
PPTX
Institutional Correction lecture only . . .
PDF
FourierSeries-QuestionsWithAnswers(Part-A).pdf
PDF
Chinmaya Tiranga quiz Grand Finale.pdf
PDF
Complications of Minimal Access Surgery at WLH
PPTX
202450812 BayCHI UCSC-SV 20250812 v17.pptx
PDF
Computing-Curriculum for Schools in Ghana
PPTX
Final Presentation General Medicine 03-08-2024.pptx
PPTX
Pharmacology of Heart Failure /Pharmacotherapy of CHF
PPTX
Presentation on HIE in infants and its manifestations
PPTX
GDM (1) (1).pptx small presentation for students
PPTX
Microbial diseases, their pathogenesis and prophylaxis
PDF
RMMM.pdf make it easy to upload and study
PPTX
human mycosis Human fungal infections are called human mycosis..pptx
PPTX
IMMUNITY IMMUNITY refers to protection against infection, and the immune syst...
PDF
102 student loan defaulters named and shamed – Is someone you know on the list?
PDF
Chapter 2 Heredity, Prenatal Development, and Birth.pdf
PDF
The Lost Whites of Pakistan by Jahanzaib Mughal.pdf
Introduction-to-Literarature-and-Literary-Studies-week-Prelim-coverage.pptx
VCE English Exam - Section C Student Revision Booklet
2.FourierTransform-ShortQuestionswithAnswers.pdf
Institutional Correction lecture only . . .
FourierSeries-QuestionsWithAnswers(Part-A).pdf
Chinmaya Tiranga quiz Grand Finale.pdf
Complications of Minimal Access Surgery at WLH
202450812 BayCHI UCSC-SV 20250812 v17.pptx
Computing-Curriculum for Schools in Ghana
Final Presentation General Medicine 03-08-2024.pptx
Pharmacology of Heart Failure /Pharmacotherapy of CHF
Presentation on HIE in infants and its manifestations
GDM (1) (1).pptx small presentation for students
Microbial diseases, their pathogenesis and prophylaxis
RMMM.pdf make it easy to upload and study
human mycosis Human fungal infections are called human mycosis..pptx
IMMUNITY IMMUNITY refers to protection against infection, and the immune syst...
102 student loan defaulters named and shamed – Is someone you know on the list?
Chapter 2 Heredity, Prenatal Development, and Birth.pdf
The Lost Whites of Pakistan by Jahanzaib Mughal.pdf

Need help coding MorseCode in JavaCreate Class MorseCodeClient. T.pdf

  • 1. Need help coding MorseCode in Java: Create Class MorseCodeClient. This represents a Client that allows a user communicate with a server across a network. The server saves the message and then relays the message to another client This is a JFrame application and should extend JFrame and Implement Runnable. The client application should allow the user to type English-language phrases in a JTextArea. When the user sends the message, the client application encodes the text into Morse code and sends the coded message through the server to the other client. Create class MorseCodeClientTest, this is a test class for morse code client and uses the main method to created new instance of MorseCodeClient. Solution package MorseCode; import java.util.ArrayList; public class MorseCodeConverter extends javax.swing.JFrame { /** * Creates new form MorseCodeConverter */ public MorseCodeConverter() { initComponents(); } @SuppressWarnings("unchecked") // //GEN-BEGIN:initComponents private void initComponents() { mainWindowContainer = new javax.swing.JPanel(); userSentence = new javax.swing.JTextField(); inputLabel = new javax.swing.JLabel(); outputLabel = new javax.swing.JLabel(); inputConfirmButton = new javax.swing.JButton(); outputField = new javax.swing.JTextField(); title = new javax.swing.JLabel(); javax.swing.GroupLayout mainWindowContainerLayout = new javax.swing.GroupLayout(mainWindowContainer); mainWindowContainer.setLayout(mainWindowContainerLayout); mainWindowContainerLayout.setHorizontalGroup(
  • 2. mainWindowContainerLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEAD ING) .addGap(0, 100, Short.MAX_VALUE) ); mainWindowContainerLayout.setVerticalGroup( mainWindowContainerLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEAD ING) .addGap(0, 100, Short.MAX_VALUE) ); setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); setBackground(new java.awt.Color(204, 204, 255)); userSentence.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { userSentenceActionPerformed(evt); } }); inputLabel.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); inputLabel.setText("Enter your sentence here"); outputLabel.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); outputLabel.setText("This is your sentence in Morse Code"); outputLabel.setToolTipText(""); inputConfirmButton.setText("OK"); inputConfirmButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { inputConfirmButtonActionPerformed(evt); } }); outputField.setFont(new java.awt.Font("Tahoma", 0, 16)); // NOI18N title.setFont(new java.awt.Font("Simplified Arabic", 0, 18)); // NOI18N title.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); title.setText("Morse Code Converter"); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup(
  • 3. layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addGap(171, 171, 171) .addComponent(inputConfirmButton)) .addGroup(layout.createSequentialGroup() .addGap(88, 88, 88) .addComponent(inputLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 148, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGroup(layout.createSequentialGroup() .addGap(86, 86, 86) .addComponent(outputLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 212, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGroup(layout.createSequentialGroup() .addGap(20, 20, 20) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) .addComponent(userSentence, javax.swing.GroupLayout.DEFAULT_SIZE, 349, Short.MAX_VALUE) .addComponent(title, javax.swing.GroupLayout.PREFERRED_SIZE, 346, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(outputField)))) .addContainerGap(30, Short.MAX_VALUE)) ); layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {inputLabel, outputLabel}); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(title, javax.swing.GroupLayout.PREFERRED_SIZE, 26, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(21, 21, 21)
  • 4. .addComponent(inputLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 14, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(userSentence, javax.swing.GroupLayout.PREFERRED_SIZE, 27, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(inputConfirmButton) .addGap(31, 31, 31) .addComponent(outputLabel) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(outputField, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(44, 44, 44)) ); layout.linkSize(javax.swing.SwingConstants.VERTICAL, new java.awt.Component[] {outputField, userSentence}); pack(); }// //GEN-END:initComponents /** * This method is run when the User enters a sentence; it runs * when the user hits 'enter'. */ private void userSentenceActionPerformed(java.awt.event.ActionEvent evt) { //GEN- FIRST:event_userSentenceActionPerformed String[] morseCode = {" ", "--..--", ".-.-.-", "..--..", "-----", ".----", "..---", "...---", "....-", ".....", "-....", "--...", "---..", "----.", ".-", "-...", "-.-.", "-..", ".", "..-.", "--.", "....", "..", ".---", "-.-", ".-..", "--", "-.", "---", ".--.", "--.-", ".-.", "...", "-", "..-", "...-", ".--", "-..-", "-.--", "--.."}; String english = " ,.?0123456789abcdefghijklmnopqrstuvwxyz"; char[] englishArray = english.toCharArray(); ArrayList holdList = new ArrayList<>(); StringBuilder holdBuilder = new StringBuilder();
  • 5. String userString = userSentence.getText().toLowerCase(); char[] userArray = userString.toCharArray(); for(int i = 0; i < userArray.length; i++) { for(int n = 0; n < englishArray.length; n++) { if(userArray[i] == englishArray[n]) { holdList.add(n); } } } for(int i = 0; i < holdList.size(); i++) { holdBuilder.append(morseCode[holdList.get(i)]); } String moCode = holdBuilder.toString(); outputField.setText(moCode); }//GEN-LAST:event_userSentenceActionPerformed /** * This method is run when the user clicks the 'OK' button * in the GUI. It has the same code as the userSentence method */ private void inputConfirmButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN- FIRST:event_inputConfirmButtonActionPerformed // a string array to hold all of the Morse Code values String[] morseCode = {" ", "--..--", ".-.-.-", "..--..", "-----", ".----", "..---", "...---", "....-", ".....", "-....", "--...", "---..", "----.", ".-", "-...", "-.-.", "-..", ".", "..-.", "--.", "....", "..", ".---", "-.-", ".-..", "--", "-.", "---", ".--.", "--.-", ".-.", "...", "-", "..-", "...-", ".--", "-..-", "-.--", "--.."}; // a string of english letter, numbers and punctuation that // corresponds to the Morse Code list String english = " ,.?0123456789abcdefghijklmnopqrstuvwxyz"; // turn that english string into an array of characters // this will allow us to iterate over it char[] englishArray = english.toCharArray();
  • 6. // make an ArrayList to hold our index values as we find them. // also initialize a StringBuilder object that will help us in // printing out a clean string of morse code values ArrayList holdList = new ArrayList<>(); StringBuilder holdBuilder = new StringBuilder(); // user input, convert to lowercase for simplicity; // convert the input to a character array. This will // allow iteration String userString = userSentence.getText().toLowerCase(); char[] userArray = userString.toCharArray(); // loop through each character in the userArray, and match // them up with values in the array of english characters. // save the index value of the english array for(int i = 0; i < userArray.length; i++) { for(int n = 0; n < englishArray.length; n++) { if(userArray[i] == englishArray[n]) { holdList.add(n); } } } // append all morse codes associated // with the english array indexes to the StringBuilder object. for(int i = 0; i < holdList.size(); i++) { holdBuilder.append(morseCode[holdList.get(i)]); } // convert that object to a string and print it out. String moCode = holdBuilder.toString(); outputField.setText(moCode); }//GEN-LAST:event_inputConfirmButtonActionPerformed public static void main(String args[]) { /* Create and display the form */ java.awt.EventQueue.invokeLater(new Runnable() { public void run() {
  • 7. new MorseCodeConverter().setVisible(true); } }); } private javax.swing.JButton inputConfirmButton; private javax.swing.JLabel inputLabel; private javax.swing.JPanel mainWindowContainer; private javax.swing.JTextField outputField; private javax.swing.JLabel outputLabel; private javax.swing.JLabel title; private javax.swing.JTextField userSentence; }