如何让我的程序回复答案

时间:2014-12-10 16:53:01

标签: java swing jframe jtextfield

我正在制作一个你可以与之交谈的节目,所以我可以问你好,它会回复。

但是当在文本字段中输入时,我似乎无法在其他文本字段中显示答案。

这是我的代码到目前为止任何帮助都很有用

public class Gui extends JFrame {

    private static final long serialVersionUID = 1L;

    private JTextField input, output;

    private String answer;
    private JPanel contentpanel;
    boolean opchosen = false;

    public Gui() {
        super("Vixen");
        input = new JTextField(null, 20);
        output = new JTextField(null, 20);

        question q = new question();

        input.addActionListener(q);

        contentpanel = new JPanel();
        contentpanel.setBackground(Color.lightGray);
        contentpanel.setLayout(new FlowLayout());

        contentpanel.add(input, BorderLayout.NORTH);
        input.setEditable(true);

        contentpanel.add(output, BorderLayout.SOUTH);
        output.setEditable(false);

        this.setContentPane(contentpanel);
    }

    private class question implements ActionListener {

        public void actionPerformed(ActionEvent Event) {
            JTextField input = (JTextField) Event.getSource();
            if (input.equals("whats you name")) {
                if (opchosen == false) {
                    if (answer == null) {
                        answer = "My name is Vixen!";
                    }
                }
            }

            if (opchosen == false) {
                output.setText(answer);
            }

        }
    }
}
}

好的问题已修复,但当我尝试提出另一个问题时,我的输出框不会显示新的答案,它只是卡在我的名字上是Vixen

1 个答案:

答案 0 :(得分:1)

仅使用JTextField输入。在文本字段的actionPerformed()实现中,append()输入文本和对相邻JTextArea的响应。这个example说明了基本方法。在示例中,响应来自另一个套接字;你的代码将来自处理预设回复的代码。