我正在制作一个你可以与之交谈的节目,所以我可以问你好,它会回复。
但是当在文本字段中输入时,我似乎无法在其他文本字段中显示答案。
这是我的代码到目前为止任何帮助都很有用
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
答案 0 :(得分:1)
仅使用JTextField
输入。在文本字段的actionPerformed()
实现中,append()
输入文本和对相邻JTextArea
的响应。这个example说明了基本方法。在示例中,响应来自另一个套接字;你的代码将来自处理预设回复的代码。