Store problemer med JNI!
Hejza eksperter.Jeg har nogle gevaldige problemer med JNI! Jeg har flg. kode. Det skulle meget gerne blive en meget simpel "lommeregner" med 3 tal, og 2 regneoperatorer.
Har ingen ide om hvordan jeg faar skidtet til at virke, har forsoegt at laese om JNI, men...
******************************************
SimpleGui.java
******************************************
package simplegui;
import javax.swing.*;
import java.awt.*;
import javax.swing.border.*;
import java.awt.event.*;
import java.lang.Long;
import java.lang.*;
/**
* <p>Title: </p>
* <p>Description: </p>
* <p>Copyright: Copyright (result) 2003</p>
* <p>Company: </p>
* @author not attributable
* @version 1.0
*/
public class SimpleGui
extends JFrame
{
private static SimpleGui instance;
private long Gui;
public static String s;
public static SimpleGui getInstance()
{
if (instance == null)
{
instance = new SimpleGui();
}
return instance;
}
public static long a = 0;
public static long b = 0;
public static String d;
JFrame jFrame1 = new JFrame();
JPanel jPanel1 = new JPanel();
JButton Button1 = new JButton("1");
JButton Button2 = new JButton("2");
JButton Button3 = new JButton("3");
JButton ButtonSum = new JButton();
JTextField FieldResult = new JTextField();
TitledBorder titledBorder1;
TitledBorder titledBorder2;
BorderLayout borderLayout1 = new BorderLayout();
JTextField TextFieldResult = new JTextField();
JButton ButtomResult = new JButton();
JButton ButtonMulti = new JButton();
public SimpleGui()
{
if (instance == null) ////////////////MAKES SURE ONLY ONE GUI
{
try
{
jbInit();
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
public static void main(String[] args)
{
SimpleGui.getInstance();
}
private void jbInit() throws Exception
{
titledBorder1 = new TitledBorder("");
titledBorder2 = new TitledBorder("");
jFrame1.getContentPane().setBackground(SystemColor.window);
//jFrame1.setDefaultCloseOperation(jFrame1.EXIT_ON_CLOSE);
jFrame1.setResizable(false);
jFrame1.getContentPane().setLayout(borderLayout1);
Button1.setBounds(new Rectangle(5, 42, 83, 27));
Button1.setText("1");
Button1.addActionListener(new SimpleGui_Button1_actionAdapter(this));
Button2.setBounds(new Rectangle(91, 42, 83, 27));
Button2.setText("2");
Button2.addActionListener(new SimpleGui_Button2_actionAdapter(this));
Button3.setBounds(new Rectangle(176, 42, 83, 27));
Button3.setText("3");
Button3.addActionListener(new SimpleGui_Button3_actionAdapter(this));
ButtonSum.setBounds(new Rectangle(5, 72, 83, 27));
ButtonSum.setText("+");
ButtonSum.addActionListener(new SimpleGui_ButtonSum_actionAdapter(this));
jPanel1.setBorder(titledBorder2);
jPanel1.setDebugGraphicsOptions(0);
jPanel1.setMaximumSize(new Dimension(100000, 100000));
jPanel1.setLayout(null);
jPanel1.setSize(50, 30);
TextFieldResult.setText("");
TextFieldResult.setBounds(new Rectangle(5, 7, 254, 32));
ButtomResult.setBounds(new Rectangle(176, 72, 83, 27));
ButtomResult.setText("=");
ButtomResult.addActionListener(new SimpleGui_ButtomResult_actionAdapter(this));
ButtonMulti.setBounds(new Rectangle(90, 72, 83, 27));
ButtonMulti.setText("*");
ButtonMulti.addActionListener(new SimpleGui_ButtonMulti_actionAdapter(this));
jPanel1.add(ButtonSum, null);
jPanel1.add(Button1, null);
jPanel1.add(Button2, null);
jPanel1.add(Button3, null);
jPanel1.add(FieldResult, null);
jPanel1.add(TextFieldResult, null);
jPanel1.add(ButtomResult, null);
jPanel1.add(ButtonMulti, null);
jFrame1.getContentPane().add(jPanel1, BorderLayout.CENTER);
jFrame1.setSize(new Dimension(300, 164));
jFrame1.setVisible(true);
}
void Button1_actionPerformed(ActionEvent e)
{
TextFieldResult.setText(TextFieldResult.getText() + "1");
}
void Button2_actionPerformed(ActionEvent e)
{
TextFieldResult.setText(TextFieldResult.getText() + "2");
}
void Button3_actionPerformed(ActionEvent e)
{
TextFieldResult.setText(TextFieldResult.getText() + "3");
}
void ButtonSum_actionPerformed(ActionEvent e)
{
String f = TextFieldResult.getText();
a = Long.parseLong(f);
d = "+";
TextFieldResult.setText(null);
}
void ButtonMulti_actionPerformed(ActionEvent e)
{
String f = TextFieldResult.getText();
a = Long.parseLong(f);
d = "*";
TextFieldResult.setText(null);
}
void ButtomResult_actionPerformed(ActionEvent e)
{
String f = TextFieldResult.getText();
b = Long.parseLong(f);
ResultInt res = new simplegui.ResultInt(a, b, d); //Opretter en instans af klassen ResultInt
//TextFieldResult.setText(ResultInt.r);
}
}
class SimpleGui_Button1_actionAdapter
implements java.awt.event.ActionListener
{
SimpleGui adaptee;
SimpleGui_Button1_actionAdapter(SimpleGui adaptee)
{
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e)
{
adaptee.Button1_actionPerformed(e);
}
}
class SimpleGui_Button2_actionAdapter
implements java.awt.event.ActionListener
{
SimpleGui adaptee;
SimpleGui_Button2_actionAdapter(SimpleGui adaptee)
{
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e)
{
adaptee.Button2_actionPerformed(e);
}
}
class SimpleGui_Button3_actionAdapter
implements java.awt.event.ActionListener
{
SimpleGui adaptee;
SimpleGui_Button3_actionAdapter(SimpleGui adaptee)
{
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e)
{
adaptee.Button3_actionPerformed(e);
}
}
class SimpleGui_ButtonSum_actionAdapter
implements java.awt.event.ActionListener
{
SimpleGui adaptee;
SimpleGui_ButtonSum_actionAdapter(SimpleGui adaptee)
{
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e)
{
adaptee.ButtonSum_actionPerformed(e);
}
}
class SimpleGui_ButtomResult_actionAdapter
implements java.awt.event.ActionListener
{
SimpleGui adaptee;
SimpleGui_ButtomResult_actionAdapter(SimpleGui adaptee)
{
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e)
{
adaptee.ButtomResult_actionPerformed(e);
}
}
class SimpleGui_ButtonMulti_actionAdapter
implements java.awt.event.ActionListener
{
SimpleGui adaptee;
SimpleGui_ButtonMulti_actionAdapter(SimpleGui adaptee)
{
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e)
{
adaptee.ButtonMulti_actionPerformed(e);
}
}
********************************************
ResultInt.java
********************************************
package simplegui;
/**
* <p>Title: </p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2003</p>
* <p>Company: </p>
* @author not attributable
* @version 1.0
*/
public class ResultInt
{
public ResultInt()
{
}
public ResultInt(long a, long b, String d)
{
System.out.println("Inde i ResultInt");
String r = cResult.cResult(a,b,d);
}
}
********************************************
cResult.java
********************************************
package simplegui;
/**
* <p>Title: </p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2003</p>
* <p>Company: </p>
* @author not attributable
* @version 1.0
*/
public class cResult
{
public cResult()
{
}
public static native String cResult(long a, long b, String d);
{
System.out.println("Inde i cResult");
System.loadLibrary("cResult");
}
}
*******************************************
cResult.cpp
*******************************************
#include "cResult.h"
#include <stdio.h>
class cResult
{
public:
void cResult(long a, long b, CString d);
cString r;
private:
jlong result;
}
JNIEXPORT jstring JNICALL Java_cResult_cResult
(JNIEnv *, jclass, jlong, jlong, jstring);
{
if(d.Compare("+")==0)
{
result = a + b;
r.Format("%d", result);
}
else if(d.Compare("*")==0)
{
result = a * b;
r.Format("%d", result);
}
}
********************************************
//RHRathje
