import java.awt.Container; import java.awt.FlowLayout; import java.awt.event.*;
ID: 668490 • Letter: I
Question
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.event.*;
import java.util.StringTokenizer;
import javax.swing.*;
import com.deitel.ch22.*;
public class StackTest extends JFrame {
private JTextField inputField, outputField;
private JLabel prompt;
private JPanel panel;
public StackTest()
{
super("Reversing a string");
//create stack
final StackComposition stack = new StackComposition();
//create GUI components
prompt = new JLabel("Enter String: ");
inputField = new JTextField(20);
inputField.addActionListener(
new ActionListener()
{//anonymous inner class
public void actionPerformed(ActionEvent event) {
// take each word from tokenizer and push on stack
String text = inputField.getText();
StringTokenizer tokenizer = new StringTokenizer(text);
StringBuffer buffer = new StringBuffer(text.length());
while (tokenizer.hasMoreTokens())
stack.push(tokenizer.nextToken());
// build reverse string by popping words from stack.
while (!stack.isEmpty()) {
Object removedObject = stack.pop();
buffer.append(removedObject.toString() + " ");
}
outputField.setText(buffer.toString());
}
}// end anonymous inner class
);
outputField=new JTextField(20);
outputField.setEditable(false);
// set up layout and add components
Container container = getContentPane();
container.setLayout(new FlowLayout());
JPanel panel = new JPanel();panel.add(prompt);
panel.add(inputField);container.add(panel);
container.add(outputField);
setSize(400,100);
setVisible(true);
}
public static void mian(String args[])
{
StackTest application = new StackTest();
application.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}// end class StackTest
I get a syntax error at "import com.deitel.ch22.*; " and at "final StackComposition stack = new StackComposition(); ". Can you fix this Java program so it works. (Printing a Sentence in Reverse Using a Stack) The program should inputs a line of text and uses a stack to display the words of the line in reverse order.
Explanation / Answer
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.event.*;
import java.util.StringTokenizer;
import javax.swing.*;
import com.deitel.ch22.*;
public class StackTest extends JFrame {
private JTextField inputField, outputField;
private JLabel prompt;
private JPanel panel;
public StackTest()
{
super("Reversing a string");
//create stack
final StackComposition stack = new StackComposition();
//create GUI components
prompt = new JLabel("Enter String: ");
inputField = new JTextField(20);
inputField.addActionListener(
new ActionListener()
{//anonymous inner class
public void actionPerformed(ActionEvent event) {
// take each word from tokenizer and push on stack
String text = inputField.getText();
StringTokenizer tokenizer = new StringTokenizer(text);
StringBuffer buffer = new StringBuffer(text.length());
while (tokenizer.hasMoreTokens())
stack.push(tokenizer.nextToken());
// build reverse string by popping words from stack.
while (!stack.isEmpty()) {
Object removedObject = stack.pop();
buffer.append(removedObject.toString() + " ");
}
outputField.setText(buffer.toString());
}
}// end anonymous inner class
);
outputField=new JTextField(20);
outputField.setEditable(false);
// set up layout and add components
Container container = getContentPane();
container.setLayout(new FlowLayout());
JPanel panel = new JPanel();panel.add(prompt);
panel.add(inputField);container.add(panel);
container.add(outputField);
setSize(400,100);
setVisible(true);
}
public static void mian(String args[])
{
StackTest application = new StackTest();
application.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}// end class StackTest
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.