私は現在、私の学校の割り当てのためのチャットボットに取り組んでいます。私は全体のチャット部分を終了しました。ユーザーの入力用にスキャナを使用し、会話を表示するためにSystem.out.println()を使用しました。 私はチャットボット用のGUIを実装したいと思います。 JTextFieldとJTextAreaがそれぞれ入力ボックスと表示ボックスである非常にシンプルなGUIを得ました。Javaで入力と出力をリダイレクト
しかし、私はそれらを一緒にリンクする方法について完全に無知です。 System.inではなくScannerのように、JTextFieldからの入力を読み込み、出力をコンソールに表示する代わりにJTextAreaに表示します。
誰もが私を助けることができますか?私は、チャットボットとGUIを一緒にリンクするために実装することを学ばなければならないのですか?
あなたは私のGUIのコードを見てみたい場合は、以下の通りです:
public class GUI_V2 extends JFrame {
private JTextField txtEnter = new JTextField();
//Chat area;
private JTextArea txtChat = new JTextArea();
//Scroll
private final JScrollPane scroll = new JScrollPane(txtChat);
public GUI_V2(){
//Frame Attributes
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setSize(2000,2000);
this.setVisible(true);
this.setResizable(false);
this.setLayout(null);
this.setTitle("Menu ChatBot");
//textEnter Attributes
txtEnter.setLocation(20,1825);
txtEnter.setSize(1950,100);
txtEnter.setFont(new Font("Arial",Font.PLAIN,45));
//txtChat Attributes
txtChat.setLocation(22,5);
txtChat.setSize(1950,1800);
txtChat.setFont(new Font("Arial",Font.BOLD,45));
txtChat.setBackground(java.awt.Color.getHSBColor(0.4957f,0.0902f,1.0f));
txtChat.setLineWrap(true);
txtChat.setWrapStyleWord(true);
txtChat.setEditable(false);
//scroll Attributes
scroll.setLocation(22,5);
scroll.setSize(1950,1800);
//Add Items To Frame
this.add(txtEnter);
this.add(scroll);
//txtEnter Action Event:
txtEnter.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent arg0){
//add userInput into the txtChat
String uText = txtEnter.getText();
txtChat.append("You" + ": " + uText + "\n");
//auto scroll down
txtChat.setCaretPosition(txtChat.getDocument().getLength());
//set the txtEnter field to be empty
txtEnter.setText("");
}
});
}
だけでなく、あなたの入力がちょうどいいようです。残念ながらあなたの出力は表示されません。 – XtremeBaumer
ボタンをクリックしたりフォーカスを変更したりするときにJTextAreaにJTextFieldの値を追加する必要がありますか? – Blasanka
いいえ、GUIは問題ありません。私はchatbotクラスの出力をGUIのJTextAreaに指示したい。そして、JTextFieldの入力をチャットボットの入力として使用してください。 –