import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class PigLatinPanel extends JPanel
{
private JTextField sentence;
private JLabel label;
public PigLatinPanel ()
{
sentence = new JTextField ();
sentence.addActionListener (new JTextFieldListener());
label = new JLabel ("Please enter a sentence");
add (sentence);
add (label);
setPreferredSize (new Dimension(300,75));
setBackground (Color.yellow);
}
private class JTextFieldListener implements ActionListener
{
public void actionPerformed (ActionEvent event)
{
String text = sentence.getText();
System.out.println("Sentence:" + text);
}
}
}
import java.util.Scanner;
public class PigLatinTranslator
{
//-----------------------------------------------------------------
// Translates a sentence of words into Pig Latin.
//-----------------------------------------------------------------
public static String translate (String sentence)
{
String result = "";
Scanner scan = new Scanner (sentence);
sentence = sentence.toLowerCase();
while (scan.hasNext())
{
result += translateWord (scan.next());
result += " ";
}
return result;
}
//-----------------------------------------------------------------
// Translates one word into Pig Latin. If the word begins with a
// vowel, the suffix "yay" is appended to the word. Otherwise,
// the first letter or two are moved to the end of the word,
// and "ay" is appended.
//-----------------------------------------------------------------
private static String translateWord (String word)
{
String result = "";
if (beginsWithVowel(word))
result = word + "yay";
else
if (beginsWithBlend(word))
result = word.substring(2) + word.substring(0,2) + "ay";
else
result = word.substring(1) + word.charAt(0) + "ay";
return result;
}
//-----------------------------------------------------------------
// Determines if the specified word begins with a vowel.
//-----------------------------------------------------------------
private static boolean beginsWithVowel (String word)
{
String vowels = "aeiou";
char letter = word.charAt(0);
return (vowels.indexOf(letter) != -1);
}
//-----------------------------------------------------------------
// Determines if the specified word begins with a particular
// two-character consonant blend.
//-----------------------------------------------------------------
private static boolean beginsWithBlend (String word)
{
return ( word.startsWith ("bl") || word.startsWith ("sc") ||
word.startsWith ("br") || word.startsWith ("sh") ||
word.startsWith ("ch") || word.startsWith ("sk") ||
word.startsWith ("cl") || word.startsWith ("sl") ||
word.startsWith ("cr") || word.startsWith ("sn") ||
word.startsWith ("dr") || word.startsWith ("sm") ||
word.startsWith ("dw") || word.startsWith ("sp") ||
word.startsWith ("fl") || word.startsWith ("sq") ||
word.startsWith ("fr") || word.startsWith ("st") ||
word.startsWith ("gl") || word.startsWith ("sw") ||
word.startsWith ("gr") || word.startsWith ("th") ||
word.startsWith ("kl") || word.startsWith ("tr") ||
word.startsWith ("ph") || word.startsWith ("tw") ||
word.startsWith ("pl") || word.startsWith ("wh") ||
word.startsWith ("pr") || word.startsWith ("wr") );
}
}
import javax.swing.JFrame;
public class PigLatinDisplay
{
public static void main (String[] args)
{
JFrame frame = new JFrame ("Pig Latin");
frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
PigLatinPanel panel = new PigLatinPanel();
frame.getContentPane().add(panel);
frame.pack();
frame.setVisible(true);
}
}
I am suppose to have a textfield box to input a word but I dont understand what I am doing wrong, it is not being displayed.The listener code should take the string from the text box and then
call the method in the PigLatinTranslator class to do the translation, but I don't know how to call it. I am having difficulties trying to do this. Any help will be appreciated. Thanks.

New Topic/Question
Reply




MultiQuote




|