Hallo,
ich mach im Moment Studienaufgaben für das nächste Semester und eine der Aufgaben ist es, einen Chatbot zuerst zu schreiben und dann hinterher ein Gui dazu zu erstellen. Ich nehme mal an, dass sie uns dadurch gleich dazu kriegen wollen, das sinnvoll zu trennen, allerdings habe ich dabei noch ein paar Schwierigkeiten.
Im Moment hängt sich jedes mal mein Programm auf, sobald ich auf den Button klicke, das Fenster lässt sich dann auch nicht mehr schließen.
[CODE lang="java" title="Gui" highlight="11-20"] public Gui(Chatbot bot)
{
this.bot = bot;
frame = new JFrame("Example");
frame.setBounds(0, 0, 600, 400);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
textArea = new JTextArea();
textArea.setEditable(false);
textField = new JTextField(48);
button = new JButton("senden");
button.addActionListener(new ActionListener()
{
@Override
public void actionPerformed(ActionEvent arg0)
{
appendText(textField.getText());
bot.eingabe = textField.getText();
textField.setText(null);
bot.auswahl();
}
}) ;
southPanel = new JPanel();
southPanel.setLayout(new FlowLayout(FlowLayout.LEFT));
southPanel.add(textField);
southPanel.add(button);
frame.getContentPane().add(textArea, BorderLayout.CENTER);
frame.getContentPane().add(southPanel, BorderLayout.SOUTH);
}[/CODE]
Der ActionListener von button führt keine einzige seiner Aktionen aus, wobei appendText und textField.setText(null); funktioniert haben, bevor ich versucht habe, die Eingabe über das TextField zu befüllen.
ich mach im Moment Studienaufgaben für das nächste Semester und eine der Aufgaben ist es, einen Chatbot zuerst zu schreiben und dann hinterher ein Gui dazu zu erstellen. Ich nehme mal an, dass sie uns dadurch gleich dazu kriegen wollen, das sinnvoll zu trennen, allerdings habe ich dabei noch ein paar Schwierigkeiten.
Im Moment hängt sich jedes mal mein Programm auf, sobald ich auf den Button klicke, das Fenster lässt sich dann auch nicht mehr schließen.
[CODE lang="java" title="Gui" highlight="11-20"] public Gui(Chatbot bot)
{
this.bot = bot;
frame = new JFrame("Example");
frame.setBounds(0, 0, 600, 400);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
textArea = new JTextArea();
textArea.setEditable(false);
textField = new JTextField(48);
button = new JButton("senden");
button.addActionListener(new ActionListener()
{
@Override
public void actionPerformed(ActionEvent arg0)
{
appendText(textField.getText());
bot.eingabe = textField.getText();
textField.setText(null);
bot.auswahl();
}
}) ;
southPanel = new JPanel();
southPanel.setLayout(new FlowLayout(FlowLayout.LEFT));
southPanel.add(textField);
southPanel.add(button);
frame.getContentPane().add(textArea, BorderLayout.CENTER);
frame.getContentPane().add(southPanel, BorderLayout.SOUTH);
}[/CODE]
Java:
public class Chatbot
{
public static String eingabe;
public static String benutzer = "Benutzer";
//Methode "starten" entfernt, da hier alles funktioniert
public void auswahl()
{
boolean weiter = true;
do
{
System.out.println("Botti:"+"\t"+"\t"+"Wie kann ich dir helfen? (gebe "+ "\"help\""+ " ein, um mögliche Funktionalitäten anzuzeigen.)");
System.out.print(benutzer +":");
switch(eingabe)
{
case "help":
help();
break;
case "ssp":
spieleSSP();
break;
case "rechnen":
berechneSumme();
break;
case "der wievielte ist heute?":
sageDatum();
break;
case "wie viel uhr ist?":
sageUhrzeit();
break;
case "stop":
weiter = false;
System.out.println("Botti:"+"\t"+"\t"+"Ich wünsche dir noch einen schönen Resttag, " + benutzer+".");
break;
default:
System.out.println("Botti:"+"\t"+"\t"+"Die Eingabe ist ungültig, bitte versuche es erneut.");
}
}while (weiter);
}
Der ActionListener von button führt keine einzige seiner Aktionen aus, wobei appendText und textField.setText(null); funktioniert haben, bevor ich versucht habe, die Eingabe über das TextField zu befüllen.