入队文本区域

时间:2015-03-27 15:20:42

标签: java swing user-interface

我正在尝试获取我的队列 - 用户在文本字段中键入的内容,通过使用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一起工作。说实话,我不确定该怎么做。一个人如何让按钮实际添加到队列中,从队列中取出然后在文本区域中显示结果?

谢谢:)

1 个答案:

答案 0 :(得分:0)

  

如何让按钮实际添加到队列中,从队列中取出然后在文本区域中显示结果?

在ActionListener中,基本代码为:

textArea.append("some text here");

虽然我真的不确定您的节点代表什么。它们似乎不是文本组件。此外,由于您需要删除文本,因此使用JList可能更容易,因为您添加到JList的每个项目都代表一个节点,因此从JList中删除最后一项更容易。