Need help coding MorseCode in Java Create Class MorseCodeCli

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\")
    // <editor-fold defaultstate=\"collapsed\" desc=\"Generated Code\">//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.LEADING)
            .addGap(0, 100, Short.MAX_VALUE)
        );
        mainWindowContainerLayout.setVerticalGroup(
            mainWindowContainerLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .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();
    }// </editor-fold>//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<Integer> 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<Integer> 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;
}

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 se
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 se
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 se
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 se

Get Help Now

Submit a Take Down Notice

Tutor
Tutor: Dr Jack
Most rated tutor on our site