Design and code a Swing GUI to translate text that is input in English into Pig Latin. You can assume that the sentence contains no punctuation. The rules for Pig Latin are as follows:
a. For words that begin with consonants, move the leading consonant to the end of the word and add “ay.” Thus, “ball” becomes “allbay”; “button” becomes “uttonbay”; and so forth.
b. For words that begin with vowels, add “way” to the end of the word. Thus, “all” becomes “allway”; “one” becomes “oneway”; and so forth.
Use a FlowLayout with a JTextArea for the source text and a separate JtextArea for the translated text. Add a JButton with an event to perform the translation. A sample application is shown next with the text translated to Pig Latin.
To parse the source text, note that you can use the Scanner class on a String. For example the following code
Scanner scan = new Scanner("foo bar zot");
while (scan.hasNext())
{
System.out.println(scan.next());
}
will output
foo
bar
zot
import java.util.*; import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.io.*; public class EnglishToPigLatin extends JFrame{ private JTextArea inputArea, outputArea; private JButton bTranslate; public EnglishToPigLatin() throws IOException{ super("English to Pig Latin Conversion"); Container container = getContentPane(); container.setLayout(new FlowLayout()); inputArea = new JTextArea(10, 20); inputArea.setEditable(true); inputArea.setLineWrap(true); inputArea.setWrapStyleWord(true); container.add(inputArea); bTranslate = new JButton("Translate"); container.add(bTranslate); bTranslate.addActionListener( new ActionListener(){ public void actionPerformed(ActionEvent e){ Scanner sc = new Scanner(inputArea.getText()); String output = ""; while (sc.hasNext()) output += toPigLatin(sc.next()) + " "; outputArea.setText(output); } } ); outputArea = new JTextArea(10, 20); outputArea.setEditable(false); outputArea.setLineWrap(true); outputArea.setWrapStyleWord(true); container.add(outputArea); setSize(300, 450); setVisible(true); } public static String toPigLatin (String str) { String result = ""; if (isVowel(str.charAt(0))) result = str + "way"; else { for (int i=1; i<str.length(); i++) result += str.charAt(i); result += str.charAt(0) + "ay"; } return result; } public static boolean isVowel (char ch) { String vowels = "aAeEiIoOuU"; if (vowels.indexOf(ch) == -1) return false; else return true; } public static void main(String args[]){ try{ EnglishToPigLatin window = new EnglishToPigLatin(); window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } catch(Exception e){ JOptionPane.showMessageDialog(null, "Error" + e, "Error", JOptionPane.ERROR_MESSAGE); } } }