Question: * * * JAVAFX * * * How can this be cleaned up and make the observeQueue and queueListView reflect the queue / deque more

***JAVAFX*** How can this be cleaned up and make the observeQueue and queueListView reflect the queue/deque more effectively?:
import java.util.*;
import javafx.application.Application;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.ContentDisplay;
import javafx.scene.control.Label;
import javafx.scene.control.ListView;
import javafx.scene.control.RadioButton;
import javafx.scene.control.TextField;
import javafx.scene.control.ToggleGroup;
import javafx.scene.layout.Background;
import javafx.scene.layout.Pane;
import javafx.scene.paint.Color;
import javafx.stage.Stage;
public class VisualQueue extends Application{
/*It's close but not quite a full visual queue, just like the other one I
can't get the list view to add/remove correctly every time, and I don't think the
queue is filling up correctly with each addition*/
Deque queue = new LinkedList<>();
ObservableList observeQueue = FXCollections.observableArrayList();
ListView queueListView = new ListView<>(observeQueue);
TextField textInput = new TextField();
Button enqueue = new Button("ENQUEUE");
Button dequeue = new Button("DEQUEUE");
Button peek = new Button("PEEK");
RadioButton fifo = new RadioButton("FIFO");
RadioButton lifo = new RadioButton("LIFO");
ToggleGroup group = new ToggleGroup();
Label head = new Label("HEAD");
Label tail = new Label("TAIL");
Label errorText = new Label();
Label title = new Label("My Visual Queue");
Label dequeueLabel = new Label();
Label peekLabel = new Label();
Label error = new Label("Error:");
Label queueLabel = new Label("Queue");
public void start(Stage primaryStage){
fifo.setTextFill(Color.WHITE);
lifo.setTextFill(Color.WHITE);
fifo.setContentDisplay(ContentDisplay.RIGHT);
lifo.setContentDisplay(ContentDisplay.RIGHT);
fifo.setToggleGroup(group);
lifo.setToggleGroup(group);
fifo.setFocusTraversable(true);
errorText.setMinSize(600,10);
errorText.setBackground(Background.fill(Color.WHITE));
title.setTextFill(Color.WHITE);
error.setTextFill(Color.WHITE);
head.setTextFill(Color.WHITE);
tail.setTextFill(Color.WHITE);
dequeueLabel.setTextFill(Color.WHITE);
queueLabel.setTextFill(Color.WHITE);
peekLabel.setTextFill(Color.WHITE);
textInput.setMinSize(10,10);
//enqueue
enqueue.setMinSize(100,10);
enqueue.setOnAction(e->{
if(fifo.isSelected()== true){
queue.addFirst(textInput.getText());
observeQueue.add(0,textInput.getText());
}
else if(lifo.isSelected()== true){
queue.addLast(textInput.getText());
observeQueue.add(observeQueue.size()-1,textInput.getText());
}
textInput.clear();
});
//dequeue
dequeue.setMinSize(100,10);
dequeue.setOnAction(e ->{
try{
if(!queue.isEmpty() && fifo.isSelected()== true){
dequeueLabel.setText((String)queue.removeFirst());
observeQueue.remove(queue.removeFirst());
queue.removeFirst();
}
else if(!queue.isEmpty() && lifo.isSelected()== true){
dequeueLabel.setText((String)queue.removeLast());
observeQueue.remove(queue.removeLast());
queue.removeLast();
}
}
catch(Exception er){
errorText.setText(er.toString());
}
});
//peek
peek.setMinSize(100,10);
peek.setOnAction(e ->{
try{
if(!queue.isEmpty() && fifo.isSelected()== true){
peekLabel.setText((String)queue.getFirst());
queue.getFirst();
}
else if(!queue.isEmpty() && lifo.isSelected()== true){
peekLabel.setText((String)queue.getLast());
queue.getLast();
}
}
catch(Exception er){
errorText.setText(er.getMessage());
}
});
Pane backgroundPane = new Pane();
backgroundPane.setBackground(Background.fill(Color.BLUE));
backgroundPane.getChildren().addAll(title,fifo,lifo,enqueue,dequeue, dequeueLabel,peek,
textInput,peekLabel,queueListView, queueLabel,
error, errorText, head,tail);
title.setLayoutX(30);
title.se

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Programming Questions!