import java.awt.*; import java.util.*; import java.applet.Applet; import Queue.*; public class QueueDemo extends Applet { protected TextField input_field; protected Button enqueue_but; protected Button dequeue_but; protected TextArea status_area; protected Label output_label; protected Queue the_queue; public void init() { setLayout(new BorderLayout()); add("North", this.input_field = new TextField("item1")); add("South", this.output_label = new Label("")); add("West", this.enqueue_but = new Button("Enqueue")); add("East", this.dequeue_but = new Button("Dequeue")); this.status_area = new TextArea( "Type in some text in the field above,\n" + "then press the 'Enqueue' button.\n" + "Enqueue some more different items,\n" + "then press the 'Dequeue' button to remove them."); this.status_area.setEditable(false); add("Center", this.status_area); this.the_queue = new QImpl(); } public void refresh_queue_display() { String result_str = ""; String item_str; Enumeration the_list = this.the_queue.elements(); while (the_list.hasMoreElements()) { item_str = (String) the_list.nextElement(); result_str = result_str + item_str + "\n"; } this.status_area.setText(result_str); } public void enqueue_pressed() { String input_str = this.input_field.getText(); if (input_str.length() == 0) { this.output_label.setText("Please type in some text first."); this.input_field.setText(""); } else { this.the_queue.insertFirst(input_str); this.output_label.setText(input_str + " enqueued."); this.input_field.setText(""); this.refresh_queue_display(); } this.repaint(); } public void dequeue_pressed() { Object removed_item; try { removed_item = this.the_queue.removeLast(); } catch (Exception e) { this.output_label.setText("Queue is empty."); return; } this.output_label.setText((String) removed_item + " dequeued."); this.refresh_queue_display(); this.repaint(); } public boolean action(Event event, Object arg) { if (event.target == enqueue_but) { this.enqueue_pressed(); return true; } else if (event.target == dequeue_but) { this.dequeue_pressed(); return true; } else return super.action(event, arg); } }