J'écris une application en Java en utilisant JPL fourni par SWI-Prolog pour appeler Prolog à partir de Java. J'utilise Eclipse comme IDE. Je ne sais pas comment commencer cet exemple, je trouve en ligne:Comment connecter mon interface Java à une application JPL Prolog?
Voici le code java:
package prolog;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import jpl.Atom;
import jpl.Compound;
import jpl.Variable;
import jpl.Term;
import jpl.Query;
import jpl.JPL;
@SuppressWarnings({ "unchecked", "deprecation", "serial" })
public class JavaProlog extends JFrame {
JButton startButton = new JButton("Start");
JTextArea textArea = new JTextArea("A Diagnostic Expert System \n" +
"for respiratory diseases and lung.");
/**
*/
JavaProlog(){
Container cp=getContentPane();
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocation (200,200);
setSize (300,200);
setLayout (new FlowLayout());
startButton.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
startDiagnose();
}
});
cp.add(textArea);
cp.add(startButton);
setVisible(true);
}
private void startDiagnose(){
Term consult_arg[] = {
new Atom("C://Users//i_vista//workspace//mdc.pl")
};
Query consult_query =
new Query(
"consult",
consult_arg);
boolean consulted = consult_query.query();
if (!consulted){
System.err.println("Consult failed");
System.exit(1);
}
}
public static void main(String argv[]){
JPL.init();
JavaProlog jpTest = new JavaProlog();
}
Si je lance le programme Prolog directement à partir de Prolog il fonctionne très bien et même quand je l'appelle de l'application Java.
Je peux également voir la sortie dans la console Eclipse et je peux répondre aux questions.
Mais je voudrais construire une interface Java pour l'interaction entre l'utilisateur et le système, mais je ne sais pas comment prendre le code de Prolog en Java et le mettre dans l'interface utilisateur. Par exemple, comment puis-je capturer l'entrée de l'interface Java et la transmettre au code Prolog?