我正在尝试获取我的队列 - 用户在文本字段中键入的内容,通过使用enqueue添加到textarea中,当他们单击出列按钮时,队列将被删除。我已经完成了所有已编程的工作,但我似乎无法使用gui ...
小组类:
public QueuePanel() {
enqueueButton = new JButton(enqueueButtonText);
dequeueButton = new JButton(dequeueButtonText);
contentsTextArea = new JTextArea(20,30);
enqueueTextField = new JTextField("Type here", 15);
add(enqueueButton);
add(dequeueButton);
add(contentsTextArea);
add(enqueueTextField);
enqueueButton.addActionListener(new ButtonListener());
}
private class ButtonListener implements ActionListener {
public void actionPerformed(ActionEvent ae){
OurQueue theQueue = new OurQueue();
if(enqueueButton.isSelected()){
theQueue.first();
}
}
}
} 我的主要:
public class QueueGui {
public static void main(String[] args) {
JFrame frame = new JFrame("Queue Gui");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
QueuePanel panel = new QueuePanel();
frame.getContentPane().add(panel);
frame.setPreferredSize(new Dimension(700, 396));
frame.pack();
frame.setVisible(true);
}
}
节点:
public class Node {
private Object data;
private Node next;
public Node(){
data = null;
next = null;
}
public Node(Object o){
data = o;
}
public Object getData() {
return data;
}
public void setData(Object data) {
this.data = data;
}
public Node getNext() {
return next;
}
public void setNext(Node next) {
this.next = next;
}
}
队列类:
public class OurQueue {
private Node front;
private Node back;
public OurQueue(){
front = null;
back = null;
}
public void enqueue(Object o){
Node newNode = new Node(o);
if (front == null){
back = newNode;
front = newNode;
}else{ // if queue is NOT empty
back.setNext(newNode);
back = newNode;
}
}
public Object dequeue(){
Object o = front.getData();
front = front.getNext();
return o;
}
public Object first(){
return front.getData();
}
public boolean empty(){
return (front == null);
}
}
就像我说的,一切都已完成,我只是想让真正的gui与gui一起工作。说实话,我不确定该怎么做。一个人如何让按钮实际添加到队列中,从队列中取出然后在文本区域中显示结果?
谢谢:)
答案 0 :(得分:0)
如何让按钮实际添加到队列中,从队列中取出然后在文本区域中显示结果?
在ActionListener中,基本代码为:
textArea.append("some text here");
虽然我真的不确定您的节点代表什么。它们似乎不是文本组件。此外,由于您需要删除文本,因此使用JList可能更容易,因为您添加到JList的每个项目都代表一个节点,因此从JList中删除最后一项更容易。