
正文
java代码组件调用 java调用com组件
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
java如何调用ActiveX的问题
activex组件要register注册,只有在本地注册后,在页面里才可以调用。java代码是无法直接调用activex的,你可以在js里面进行调用,如果你有数字证书,就比较好,否则让用户注册ocx比较麻烦,除非让用户通过exe进行ocx的注册,只能应用于IE内核的浏览器,对firefox是没用的。
相关问答
Q1: 什么是JAVA组件?
例如java代码组件调用:javabean是一个类java代码组件调用,但是如果您的类想要成为beajavabean,您必须向类中的变量(比如XXX)添加两个内部函数getXxx()和setXxx(),并且您必须在类中有一个无参数的构造函数。这些就是javabean,组件之间必须有一个相互使用的规范。
Java实际上是所有的类。组件是一个抽象,是符合规范的类的集合。要知道它可以提供某些功能。以J2EE为例,servlet,jsp,javabean,ejb都是组件。
但在使用上,都会分阶级,有自己的特殊规则。
扩展资料:
首先,轻量级组件是用Java代码绘制的,因此具有平台可移植性,重量级组件是由调用系统的函数(如主窗体)绘制的组件,一般来说,尽量使用轻量级组件,这有利于可移植性。
java中的大多数组件。swing包是轻量级的,而java包则是轻量级的,awt很重。
Swing是用100%纯Java实现的,而Swing组件是用Java实现的轻量级组件,没有本地代码独立于操作系统支持之外,这是拥有AWT组件的最大组。当AWT组件通过特定的平台时
对等类(Peer)实现,因此Swing比AWT组件更实用。Swing不能回答相同的问题平台上的一致性能和提供本地窗口系统不支持的附加功能的能力。
重量级组件:特定平台必须有相应的组件。
轻量级组件:在一个虚拟的画布上绘制组件(swing非常慢),所有的轻量级组件应该“最终”属于重量级组件(jframe、jdialog)。
因为它是这样绘制的,所以可以在各种平台上实现一致的性能。同样,如果混合重量级组件和轻量级组件容易在重叠上引起冲突。
Q2: java 如何调用com组件接口方法
书写步骤 一般分为以下:
1、 编写带有native声明的方法的java类
2、 使用javac命令编译所编写的java类
3、 使用javah ?jni java类名生成扩展名为h的头文件
4、 使用C/C++实现本地方法
5、 将C/C++编写的文件生成动态连接库
Q3: java 如何在jDialog里调用jFrame的组件
//问题的关键在于java代码组件调用,如何从jDialog中获取jFrame的引用。
//我是用内部类的形式解决该问题的。而且直接操作jFrame的组件。
//还可以在新建自定义jDialog类时java代码组件调用,传入jFrame的引用。
import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextArea;
import javax.swing.JTextField;
public class FrameTest extends JFrame {
private JTextArea textArea;
public static void main(String[] args) {
new FrameTest();
}
public FrameTest() {
this.setSize(400, 300);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
initPanel();
this.setVisible(true);
}
private void initPanel() {
JButton button = new JButton("Add");
textArea = new JTextArea();
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
openDialog();
}
});
this.add(button, BorderLayout.NORTH);
this.add(textArea, BorderLayout.CENTER);
}
private void openDialog() {
final JDialog dialog = new JDialog(this, true);
dialog.setSize(300, 200);
dialog.setLocation(getX() + 50, getY() + 50);
dialog.setLayout(new GridLayout(3, 2));
final JTextField name = new JTextField(10);
final JTextField phone = new JTextField(10);
JButton save = new JButton("保存");
JButton cancel = new JButton("取消");
save.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
textArea.append(name.getText() + ":" + phone.getText() + "\n");
dialog.dispose();
}
});
cancel.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
dialog.dispose();
}
});
dialog.add(new JLabel("姓名:"));
dialog.add(name);
dialog.add(new JLabel("电话:"));
dialog.add(phone);
dialog.add(save);
dialog.add(cancel);
dialog.setVisible(true);
}
}
Q4: java如何调用com组件,最好给出代码
在javascript中先定义一个该COM的对象,然后用variResult=Com对象.sum(1,2);这样iResult变量就会接到*pVal的值。但是要保证*pVal的类型是out的,而且必须是retval的,否则外面调用时是接不到的。
Q5: 如何在Java中调用Python代码
Jython(原JPython)java代码组件调用,是一个用Java语言写java代码组件调用的Python解释器。 在没有第三方模块的情况下,通常选择利用Jython来调用Python代码, 它是一个开源的JAR包,java代码组件调用你可以到官网下载 一个HelloPython程序 importorg.python.util.PythonInterpreter; publicclassHelloPython{ publicstaticvoidmain(String[]args){ PythonInterpreterinterpreter=newPythonInterpreter(); interpreter.exec("print('hello')"); } } 什么是PythonInterpreter?它的中文意思即是“Python解释器”。我们知道Python程序都是通过解释器来执行的,我们在Java中创建一个“解释器”对象,模拟Python解释器的行为,通过exec("Python语句")直接在JVM中执行Python代码,上面代码的输出结果为:hello在Jvm中执行Python脚本 interpreter.execfile("D:/labs/mytest/hello.py");如上,将exec改为execfile就可以java代码组件调用了。需要注意的是,这个.py文件不能含有第三方模块,因为这个“Python脚本”最终还是在JVM环境下执行的,如果有第三方模块将会报错:javaImportError:Nomodulenamedxxx 仅在Java中调用Python编写的函数 先完成一个hello.py代码: defhello(): return'Hello'在Java代码中调用这个函数: importorg.python.core.PyFunction; importorg.python.core.PyObject; importorg.python.util.PythonInterpreter; publicclassHelloPython{ publicstaticvoidmain(String[]args){ PythonInterpreterinterpreter=newPythonInterpreter(); interpreter.execfile("D:/labs/hello.py"); PyFunctionpyFunction=interpreter.get("hello",PyFunction.class);//第一个参数为期望获得的函数(变量)的名字,第二个参数为期望返回的对象类型 PyObjectpyObject=pyFunction.__call__();//调用函数 System.out.println(pyObject); } } 上面的代码执行结果为:Hello 即便只是调用一个函数,也必须先加载这个.py文件,之后再通过Jython包中所定义的类获取、调用这个函数。 如果函数需要参数,在Java中必须先将参数转化为对应的“Python类型”,例如: __call__(newPyInteger(a),newPyInteger(b))a,b的类型为Java中的int型,还有诸如:PyString(Stringstring)、PyList(Iteratoriter)等。 详细可以参考官方的api文档。 包含第三方模块的情况:一个手写识别程序 这是我和舍友合作写的一个小程序,完整代码在这里:,界面上引用了corejava上的一段代码。Python代码是舍友写的,因为在Python程序中使用了第三方的NumPy模块,导致无法通过Jython执行。下面这个方法纯粹是个人思路,没有深入查资料。核心代码如下: importjava.io.*; classPyCaller{ privatestaticfinalStringDATA_SWAP="temp.txt"; privatestaticfinalStringPY_URL=System.getProperty("user.dir")+"\\test.py"; publicstaticvoidwriteImagePath(Stringpath){ PrintWriterpw=null; try{ pw=newPrintWriter(newFileWriter(newFile(DATA_SWAP))); }catch(IOExceptione){ e.printStackTrace(); } pw.print(path); pw.close(); } publicstaticStringreadAnswer(){ BufferedReaderbr; Stringanswer=null; try{ br=newBufferedReader(newFileReader(newFile(DATA_SWAP))); answer=br.readLine(); }catch(FileNotFoundExceptione){ e.printStackTrace(); }catch(IOExceptione){ e.printStackTrace(); } returnanswer; } publicstaticvoidexecPy(){ Processproc=null; try{ proc=Runtime.getRuntime().exec("python"+PY_URL); proc.waitFor(); }catch(IOExceptione){ e.printStackTrace(); }catch(InterruptedExceptione){ e.printStackTrace(); } } //测试码 publicstaticvoidmain(String[]args)throwsIOException,InterruptedException{ writeImagePath("D:\\labs\\mytest\\test.jpg"); execPy(); System.out.println(readAnswer()); } } 实际上就是通过Java执行一个命令行指令。
关于java代码组件调用和java调用com组件的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。






