Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

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