我正在寫使用SWI-Prolog提供JPL從Java調用Prolog的在Java的應用程序。如何將我的Java用戶界面連接到JPL Prolog應用程序?
我使用的Eclipse作爲IDE。我不知道如何開始這個例子,我在網上找到:
這裏的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();
}
如果我直接從Prolog的運行Prolog程序正常工作和相同的,當我把它從Java應用程序。
我也可以在Eclipse控制檯中看到輸出,我可以回答這些問題。
但是我想爲用戶和系統之間的交互構建一個Java UI,但我不知道如何從Java中的Prolog獲取代碼並將其放入UI中。
例如,如何從Java UI捕獲輸入並將其傳遞給Prolog代碼?